Le formulaire IE7 n'est pas invité à retenir le mot de passe lorsqu'il est soumis via javascript

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

Question

J'ai un site Web sur lequel nous utilisons Javascript pour soumettre le formulaire de connexion. Sur Firefox, il invite l'utilisateur à se souvenir de son mot de passe lorsqu'il se connecte, mais pas sur IE7.

Après quelques recherches, il semble que l'utilisateur ne soit invité à IE7 que lorsque le formulaire est soumis via un contrôle Submit. J'ai créé quelques exemples de code HTML pour prouver que tel est le cas.

<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>

Le lien href ne reçoit pas l'invite mais le bouton d'envoi sera dans IE7. Les deux fonctionnent dans Firefox.

Je ne parviens pas à obtenir le même style sur mon site avec un bouton d'envoi. Quelqu'un sait-il comment obtenir l'invite de mémorisation du mot de passe à afficher lors de l'envoi via Javascript?

Était-ce utile?

La solution

Pourquoi ne pas accrocher le formulaire de cette manière?

<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>

Ainsi, votre fonction sera appelée, que le lien soit cliqué ou que le bouton d'envoi soit enfoncé (ou que la touche Entrée soit enfoncée) et que vous puissiez annuler l'envoi en renvoyant la valeur false. Cela peut affecter la façon dont IE7 interprète la soumission du formulaire.

Éditer: Je recommanderais de toujours accrocher la soumission du formulaire de cette façon plutôt que d’appeler submit () sur l’objet formulaire. Si vous appelez submit (), cela ne déclenchera pas la soumission de l'objet de formulaire.

Autres conseils

Avez-vous essayé d'insérer l'URL dans le fichier href et d'y associer un gestionnaire d'événements Click afin de soumettre le formulaire, puis de renvoyer false à partir du gestionnaire de clics afin que l'URL ne puisse pas être consultée.

Autre bouton d'envoi masqué déclenché via javascript?

Vous pouvez essayer d'utiliser le HTML < bouton > balise à la place d'un lien ou d'un bouton d'envoi.

Par exemple,

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

Le & bouton > balise est beaucoup plus facile à styler que le standard < input type = & "submit &"; > ;. Il existe quelques bizarreries entre navigateurs, mais elles ne sont pas insurmontables.

Un très bon article sur l'utilisation de < button > peut être trouvé à l'adresse particletree: Redécouvrir l'élément du bouton

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top