2012-01-03 17 views
51

Sto creando un modulo di iscrizione per il mio sito web. Contiene vari campi modulo standard. Ad esempio: nome, indirizzo, numero di telefono, nome utente, password, ecc.Attivazione automatica del modulo del browser

Quando faccio doppio clic su un campo (in Chrome 16), così posso compilare automaticamente il mio indirizzo, ricevo questo messaggio:

Questa pagina Web ha disabilitato il riempimento automatico per questo modulo.

Non l'ho disabilitato, quindi come lo abilito? Ho provato ad aggiungere autocomplete="on" al tag <form> ea (alcuni) i tag <input> e questo non ha aiutato.

Devo aggiungere autocomplete="on" a tutti i campi? Inoltre, come fa il browser a sapere quale campo è cosa? Devo dare un nome ai campi qualcosa di speciale?

Un'altra domanda: esiste un tipo di evento onautocomplete che viene attivato quando un modulo viene compilato automaticamente? Nel mio modulo, quando inserisci un codice postale, appare nel nostro database (tramite AJAX) e poi ottiene lo stato e la città (città e stato sono elenchi a discesa, perché i codici postali possono essere per più di una città) e li riempie in per te. Speravo di poter eseguire quella corsa dopo che il modulo era stato riempito automaticamente.

P.S. Sto usando il plugin jQuery form validation, se questo è importante.

+0

add autocomplete = "on" al tag

, il gioco è fatto. Ora cancella la cronologia per l'ultima ora circa e aggiorna la pagina. Spero che questo possa aiutare. Cordiali saluti –

+0

Se si dispone di un account Oracle, accedere al sito, quindi fare clic su Account accanto al proprio nome, quella pagina si è completata automaticamente, che è possibile vedere guardando il suo codice sorgente. Cordiali saluti –

+0

@GagandeepBali: Ho provato che, non ha aiutato = (ho aggiunto 'autocomplete =" on "' allo '', ho aperto la pagina in modalità di navigazione in incognito di Chrome e quando ho provato a completare automaticamente il campo indirizzo, ho ottenuto il errore nella domanda –

risposta

72

Il problema era che il tag del modulo non aveva method="POST" su di esso.

Dopo aver cercato su Google il messaggio, ho trovato uno bug report e uno dei comments menzionato method="POST".

Ho aggiunto method="POST" e voilà! Il riempimento automatico funziona.

In alcuni casi, potrebbe anche essere necessario aggiungere un action se il modulo non ne ha uno. action="javascript:void(0)" funziona.

Nota: il riempimento automatico sembra attivare l'evento onchange.

Nota 2: Per quanto riguarda come il browser sa quale campo è quello che, si veda questa domanda: How to trigger Autofill in Google Chrome?

+0

Ho anche aggiunto method = POST al mio modulo, ma l'avviso è ancora lì ... Chrome 21 –

+0

@PeterO .: Gli hai assegnato anche un attributo 'action'? –

+0

Sì, è lì. –

3

L'opzione per disattivare il completamento automatico si trova in genere nel tag modulo, consultare la pagina Developer di Mozilla here. Ciò dovrebbe significare che normalmente la rimozione di quell'attributo dovrebbe attivarla di nuovo su una pagina web.

Per quanto riguarda la seconda parte con la richiesta AJAX, non penso ci sia un listener per questo, ma potresti aggiungere una funzione che controlla il valore del campo ogni x secondi per esempio, e se è cambiato puoi eseguire la tua ricerca

+0

Desidero attivare il completamento automatico * su *, non disattivare. –

+0

L'ho reso un po 'più chiaro. Vuol dire che se puoi disattivarlo aggiungendo quell'attributo, dovresti essere in grado di abilitarlo rimuovendo l'attributo. – canihavesomecoffee

+0

La rimozione dell'attributo 'autocomplete' (o l'impostazione' autocomplete = "su" ') non l'ha abilitato. Ricevo ancora il messaggio "Questa pagina web ha disabilitato il riempimento automatico per questo modulo" in Chrome. –

Problemi correlati