2014-05-18 14 views
11

Come parte dei miei moduli di login e di registrazione, se ci sono errori, sarà messa a fuoco automatica del campo correlato. In realtà, non è così semplice come pensavo. Lasciami provare a spiegare!Campo di testo della messa a fuoco automatica su cellulare, ma senza tastiera?

Fondamentalmente, su questo progetto, le pagine sono caricate con AJAX. I moduli possono includere un attributo autofocus. Funziona alla grande, ma sul cellulare mostra semplicemente il cursore senza far apparire la tastiera, il che significa che devi ancora toccare l'input per iniziare a digitare.

Mi manca qualcosa, o devo raddoppiare-up la focalizzazione con qualcosa di simile

document.querySelector("[autofocus]").focus(); 
// with appropriate verification that the element exists, of coursr 

risposta

4

nei dispositivi mobili (almeno in Safari di Apple), la tastiera non è permesso di presentarsi senza l'utente che fa clic sul campo di input. È di design, e non penso che ci sia molto che puoi fare al riguardo.

http://www.quora.com/Mobile-Safari-iPhone-or-iPad-with-Javascript-how-can-I-launch-the-on-screen-keyboard

+1

Non credo che questo è vero al 100%, ho un sito con un menu a discesa che contiene un ingresso, e quando si apre la discesa si chiama '.focus()' sull'ingresso. Quando apro il menu a discesa di Safari sul mio iPad 2, viene visualizzata automaticamente la tastiera, prima di fare clic sull'input. – Andy

+0

Non è chiaro, ma il collegamento quora suggerisce che il problema è che tutti gli eventi automatici (come onload, ready, ecc) non riescono a visualizzare la tastiera su focus() - tutto ciò che viene attivato da un evento utente, come onclick ecc. , se poi chiamano focus(), mostra la tastiera. –

Problemi correlati