Domanda

Ho un sito Web in cui utilizziamo Javascript per inviare il modulo di accesso. Su Firefox richiede all'utente di ricordare la password, quando effettua l'accesso, ma su IE7 non lo fa.

Dopo aver effettuato alcune ricerche, sembra che l'utente venga richiesto in IE7 solo quando il modulo viene inviato tramite un controllo di invio. Ho creato alcuni esempi di html per dimostrare che è così.

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

Il collegamento href non riceve il prompt ma il pulsante di invio sarà in IE7. Entrambi funzionano in Firefox.

Non riesco a far sembrare lo stile del mio sito uguale con un pulsante di invio, qualcuno sa come visualizzare la richiesta di ricordare la password quando si invia tramite Javascript?

È stato utile?

Soluzione

Perché non provare ad associare l'invio del modulo in questo modo?

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

In questo modo la tua funzione verrà chiamata se si fa clic sul collegamento o viene premuto il pulsante di invio (o viene premuto il tasto Invio) e puoi annullare l'invio restituendo false. Ciò può influire sul modo in cui IE7 interpreta l'invio del modulo.

Modifica: consiglierei sempre di agganciare l'invio del modulo in questo modo piuttosto che chiamare submit () sull'oggetto modulo. Se chiami submit (), non attiverà l'invio dell'invio dell'oggetto form.

Altri suggerimenti

Hai provato a inserire l'URL nell'href e allegare un gestore eventi click per inviare il modulo e restituire false dal gestore clic in modo che l'URL non riesca a navigare.

Pulsante di invio nascosto in alternativa attivato tramite javascript?

Potresti provare a usare il pulsante HTML < > tag anziché un link o un pulsante di invio.

Ad esempio,

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

Il pulsante < > il tag è molto più semplice da applicare rispetto allo standard < input type = " submit " > ;. Esistono alcune stranezze tra browser ma non sono insormontabili.

Un articolo davvero eccezionale sull'uso del pulsante < > è disponibile su particletree: Riscoprire l'elemento del pulsante

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top