No se solicita el formulario IE7 para recordar la contraseña cuando se envía a través de JavaScript

StackOverflow https://stackoverflow.com/questions/158438

Pregunta

Tengo un sitio web donde usamos Javascript para enviar el formulario de inicio de sesión. En Firefox, solicita al usuario que recuerde su contraseña cuando inicia sesión, pero en IE7 no lo hace.

Después de investigar un poco, parece que el usuario solo aparece en IE7 cuando el formulario se envía a través de un control Enviar. He creado algunos ejemplos de HTML para demostrar que este es el caso.

<html>
<head>
<title>test autocomplete</title>
<script type="text/javascript">
function submitForm()
{
    return document.forms[0].submit();
}
</script>
</head>
<body>
<form method="GET" action="test_autocomplete.html">
<input type="text" id="username" name="username">
<br>
<input type="password" id="password" name="password"/>
<br>
<a href="javascript:submitForm();">Submit</a>
<br>
<input type="submit"/>
</form>
</body>
</html>

El enlace href no recibe el mensaje, pero el botón de envío lo hará en IE7. Ambos funcionan en Firefox.

No puedo lograr que el estilo de mi sitio se vea igual con un botón de envío. ¿Alguien sabe cómo hacer que aparezca el mensaje de recordar contraseña al enviar a través de Javascript?

¿Fue útil?

Solución

¿Por qué no intentas enganchar el envío del formulario de esta manera?

<html>
    <head>
        <title>test autocomplete</title>
        <script type="text/javascript">
            function submitForm()
            {
                    return true;
            }
        </script>
    </head>
    <body>
        <form method="GET" action="test_autocomplete.html" onsubmit="return submitForm();">
            <input type="text" id="username" name="username">
            <br>
            <input type="password" id="password" name="password"/>
            <br>
            <a href="#" onclick="document.getElementById('FORMBUTTON').click();">Submit</a>
            <br>
            <input id="FORMBUTTON" type="submit"/>
        </form>
    </body>
</html>

De esa forma, se llamará a su función si se hace clic en el enlace o si se presiona el botón Enviar (o si se presiona la tecla Intro) y puede cancelar el envío devolviendo falso. Esto puede afectar la forma en que IE7 interpreta el envío del formulario.

Editar: recomendaría siempre enganchar el envío del formulario de esta manera en lugar de llamar a submit () en el objeto del formulario. Si llama a submit (), no activará el envío del objeto del formulario.

Otros consejos

¿Intentó poner la url en la href y adjuntar un controlador de eventos click para enviar el formulario y devolver false desde el controlador click para que la url no se dirija a ellos?

¿Botón de envío alternativamente oculto activado a través de JavaScript?

Puede intentar usar el HTML < button > etiqueta en lugar de un enlace o un botón de enviar.

Por ejemplo,

<button type="submit">Submit</button>

El botón < > la etiqueta es mucho más fácil de diseñar que el estándar < input type = " submit " > ;. Hay algunas peculiaridades entre navegadores, pero no son insuperables.

Un artículo realmente genial sobre el uso de < button > se puede encontrar en particletree: Redescubriendo el elemento del botón

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top