Sto utilizzando questi eventi per provare a valutare l'input del modulo, ma se il modulo è compilato automaticamente dal browser, questi eventi non vengono attivati. Come posso attivare l'evento anche sulla compilazione automatica?Jquery .keyup .keydown .keypress non rileva la compilazione automatica del browser
risposta
Non c'è modo di rilevare un riempimento automatico del browser, sfortunatamente. Utilizzare invece setInterval
, ad esempio, per eseguire una funzione ad una frequenza piuttosto elevata che controlla se il valore originale (o vuoto) corrisponde al valore di input e attiva la risposta in questo modo. Se non vuoi farlo, probabilmente sei SOL dato che il browser non attiverà nemmeno lo .change
, e probabilmente nessun evento è compatibile con il cross-browser.
Si potrebbe anche eseguire gli eventi di convalida sull'invio di moduli, che dovrebbe essere altrettanto efficace.
sì il problema con la tecnica di sottomissione è che sto cambiando il colore del bordo di input basato sulla convalida dei contenuti, quindi ho bisogno che l'evento si accenda ogni volta che viene cambiato –
È possibile simulare un po 'il comportamento desiderato legandosi agli eventi .click()
e/o .dblclick()
.
Non è garantito, ma è possibile che si verifichi un ulteriore clic del mouse se decide di "approvare" il completamento automatico selezionandolo dalla casella.
So che è una domanda piuttosto vecchia, ma ho risolto lo stesso problema utilizzando e.preventDefault() dopo la funzione keyup.
In questo modo se si seleziona con inserisci il suggerimento dal riempimento automatico del browser lo noterà. Il problema rimane ancora quando si fa clic con il mouse sul suggerimento, ma funziona bene se si preme un tasto qualsiasi dopo averlo selezionato.
soluzione finale
ho trovato questo post su StackOverflow: https://stackoverflow.com/a/24746108/3481005
e utilizzando .On ("input") fa il trucco!
$("#email").on("input",function (e) {
- 1. jQuery - keydown/keypress/keyup Rilevamento ENTERKEY?
- 2. jQuery .keypress & .keydown .which
- 3. Attiva un evento keypress/keydown/keyup in JS/jQuery?
- 4. Rileva Ctrl + A in evento keyup
- 5. keydown + eventi keyup per chiavi specifiche
- 6. disabilita tutti gli eventi keyup/keydown/keypressed presenti a pag.
- 7. Rilevamento quando la compilazione automatica del browser è aperta
- 8. eventi keyup/keydown catch-all nell'iframe?
- 9. TeamCity non innescare compilazione automatica
- 10. jQuery $ (documento) .keydown() problemi
- 11. jQuery .keyup() non funziona
- 12. Trigger Keypress con jQuery
- 13. rileva la dimensione del carattere del browser
- 14. jQuery evento keyup in ritardo sull'input dell'utente
- 15. Come attivare la compilazione automatica della password salvata nei browser?
- 16. Rileva aggiornamento del browser
- 17. Rileva la versione del browser utilizzando GWT?
- 18. preventDefault() su evento keyup non funzionante
- 19. Attivazione automatica del modulo del browser
- 20. Perché gli eventi KeyUp e KeyDown si rallentano?
- 21. Rileva funzionalità Riproduzione automatica HTML5 Audio - Audio su browser mobili
- 22. TkInter keypress, eventi keyrelease
- 23. Come disabilitare la compilazione automatica nel testo del browser immette in modo selettivo tramite codice?
- 24. Rileva linee del browser avvolte tramite javascript
- 25. jQuery: keyPress Backspace non si attiva?
- 26. jquery - rileva se il fondo del div sta toccando la parte inferiore della finestra del browser?
- 27. La compilazione automatica di Chrome non attiva la convalida. Evento di riempimento automatico standard?
- 28. Rileva la presenza del modello al momento della compilazione
- 29. Trigger pressione tasto (keydown) con jQuery
- 30. jQuery rileva se la stringa contiene qualcosa
L'ho cercato qualche tempo fa e non credo che tu possa, non c'è nessun evento per il riempimento automatico del browser. Sarebbe comunque interessato a qualsiasi risposta :) –
Senza sapere esattamente cosa stai facendo, potresti aggiungere anche un gestore di eventi '.change()'? Onestamente, non sono nemmeno sicuro che l'evento si attivi anche con il riempimento automatico del browser. – jaredhoyt
Proverei '.change()' come suggerito da Jared, ma se non funziona dovresti usare '.blur()'. – nnnnnn