2011-08-30 10 views
11

Ho un nuovo sito che stiamo utilizzando che utilizza HTML5. Tutto convalida tranne che per i fogli di stile MENO e i tag di Facebook. Tuttavia, Chrome non si riempirà automaticamente. Se digito "chr" nel campo del nome, viene visualizzato il riempimento automatico standard sotto di esso, ma l'evidenziazione, il clic o la selezione dell'opzione di riempimento automatico non completa il modulo come dovrebbe. Il menu a discesa Compilazione automatica si limita a sparire.Cosa causerebbe l'interruzione del funzionamento dell'autenticazione automatica di Chrome?

Immagino ci sia qualcosa nel mio codice HTML che confonde il codice di compilazione automatica, ma non riesco a trovare alcuna informazione sul web in merito all'implementazione di riempimento automatico di Chrome e alle cose da cercare quando non funziona.

Modifica: so che il riempimento automatico funziona correttamente perché funziona su altri siti, anche su altri siti che abbiamo sviluppato. Deve essere qualcosa di specifico per l'HTML su questo sito.

+0

Fornire alcuni esempi di codice HTML + JS. Ho la sensazione che tu abbia un codice js che impedisce al modulo di inviare azioni, supponendo che tu stia utilizzando un tag FORM in primo luogo. – Kayhadrin

+0

Ecco una potenziale soluzione per il tuo problema: http://stackoverflow.com/questions/16445463/how-to-get-chrome-to-autofill-with-asynchronous-post/22191041#22191041 – Kayhadrin

risposta

6

Sembra che Chrome abiliti l'autofill per i moduli con un metodo POST. Questo potrebbe essere stato un aggiornamento di sicurezza su una versione recente.

Riempimento automatico funziona se lo fai:

<form id="myForm" action="?go" method="post">

non funzionerà se si omette il metodo o è impostato per ottenere:

<form id="myForm" action="?go" method="get">

<form id="myForm" action="?go">

+0

Questo ha funzionato per me, grazie. –

3

L'unico modo che conosco in HTML per bloccarlo è l'impostazione: completamento automatico = "off" sugli input.

So che i menu a discesa non funzionano a volte con la compilazione automatica, ma non con le caselle di testo.

+0

Sì, non sto usando quello . – Chris

0

Spiacente, non posso darti una risposta definitiva, ma vorrei iniziare con la rimozione di tutto dalla pagina tranne quel campo di input. Se funziona, inizierei "ricerca binaria" - rimuovi metà del layout originale e vediamo se funziona, se non lo è - rimuovi un'altra metà di ciò che è rimasto e così via, finché non viene trovata la riga del problema.

Lo stesso potrebbe essere applicato a css, js, ecc. È un modo piuttosto efficace di cercare gli errori (per 1024 linee di codice troverai la riga esatta del problema in soli 10 passaggi).

15

Chrome non salva la password oi dati di completamento automatico se un modulo viene inviato in modo asincrono. Ad esempio, se si invia il seguente modulo, Chrome vi verrà chiesto di salvare la password:

<form action="/signin"> 
    <input type="text" name="email" /> 
    <input type="password" name="password" /> 
    <button type="submit">Sign In</button> 
</form> 

Tuttavia, se si associa all'evento submit e ignorare il comportamento predefinito, non ci sarà alcun messaggio ei dati di completamento automatico non verranno salvate:

$(function(){ 
    $('form').submit(function(e){ 
     e.preventDefault(); 
     $.post($(this).attr('action'), $(this).serialize()); 
    }); 
}); 

testato in 20,0

+0

Questo è del tutto irrilevante considerando che i dati utente salvati esistono già e che avrebbe dovuto offrire il modulo prima di inviarlo. – Chris

+0

So che questo è un anno dopo. Stavo avendo questo problema perché ho presentato il mio modulo in modo asincrono. Ho fatto [questa domanda] (http://stackoverflow.com/questions/16445463/how-to-get-chrome-to-autofill-with-asynchronous-post) poche ore fa. Mi chiedo se tu avessi un'opinione se questo è un buon metodo per aggirare questo comportamento. Sembra funzionare in Chrome. – 1252748

+0

Ciao Christopher, sto inviando i miei moduli tramite '$ ('form'). Submit()' e VOGLIO che il completamento automatico funzioni. Tuttavia, il completamento automatico funziona solo se il modulo viene inviato tramite pulsante di invio 'button type =" submit "', qualsiasi idea simula il pulsante di invio in modo che Chrome si completi automaticamente? grazie – basZero

2

ho appena lottato con questo problema per un po ', ho scoperto che un "nome" attributo con un trattino come "email-2" causerebbe Chrome non au completare il campo. Nel mio caso l'ho cambiato in email2 e ora funziona. Influisce solo sull'attributo "nome", mentre l'attributo "id" non fa alcuna differenza.

Spero che questo aiuti qualcuno a risparmiare tempo con un insetto così stupido.

Saluti dall'Argentina!

-1

Solo quegli elementi che richiedono il riempimento automatico dovrebbero trovarsi lì all'interno del modulo, altrimenti l'auto riempire non funzionerà. Porta solo quelle caselle di testo sotto un modulo. Se hai già una forma che coinvolge altri elementi, separali e inserisci un nuovo tag form attorno alle caselle di testo che richiedono il riempimento automatico e nient'altro al suo interno.

+1

Questo non è il caso di molti moduli con completamento automatico che ho trovato su molti siti Web, dove compio automaticamente solo una parte del modulo – gbalduzzi

Problemi correlati