2010-10-04 9 views
6

Per esempio se hoC'è un modo per evitare la visualizzazione della tastiera in Safari Mobile

<input type="text" id="myid"> 

e sto usando l'iPad, quando mi concentro in questo ingresso, l'iPad sarebbe visualizzare automaticamente la tastiera. C'è un modo per evitarlo? Grazie

+1

e in che modo un utente immetterà i dati in quel campo se la tastiera non viene visualizzata? –

+1

Una tabella verrebbe visualizzata al momento della messa a fuoco sul campo di immissione in modo che sia possibile selezionare un elemento. Un semplice tag select non funzionerebbe perché ogni opzione avrà più elementi di dati. –

risposta

2

Non lasciare che la messa a fuoco vada in quel campo. Utilizzare un gestore di eventi per impedire il comportamento predefinito. Il gestore di eventi sarebbe simile a questa:

function onFocus(e) { 
    e.preventDefault(); 
    // you could change the color of the field to indicate this is the active field. 
} 

vostro codice di gestione tabella potrebbe popolare questo campo senza il browser sempre concentrandosi su di esso.

3

La soluzione migliore che ho trovato è posizionare un div invisibile sulla textarea. Ciò impedisce all'area di testo di ricevere eventi tattili e ciò impedisce l'apparizione della tastiera. Cattura gli eventi sul div e, se vuoi rendere editabile la textarea, chiama .focus(), e questo farà saltare la tastiera verso l'alto.

L'utilizzo di event.preventDefault non funziona molto bene. Fa sì che lo schermo "salti" mentre appare la tastiera e poi scompare immediatamente.

11

Sì, è sufficiente fare l'elemento di sola lettura

<input type="text" id="myid" readonly="readonly" /> 

Si noti che questo non funziona con l'elemento. Credo che potrebbe essere un bug.

Problemi correlati