2012-03-21 9 views
10

Sto utilizzando un input monthpicker (simile a jQuery UI datepicker) per un campo di scadenza della carta di credito.Come disattivare la tastiera dell'iPhone per un campo di input specificato nella pagina Web

Ho bisogno di sopprimere la tastiera dell'iPhone perché nasconde il selezionatore del mese.

Ho provato a impostare il campo in sola lettura e non è una soluzione accettabile: in Safari iOS 5.1 i campi di sola lettura vengono saltati nella navigazione da tastiera (pulsanti prev/next sulla tastiera). Anche la sfocatura del campo non è accettabile perché attiva la convalida (stiamo anche utilizzando la convalida di jQuery).

C'è un modo per disattivare la tastiera dell'iPhone su un singolo campo senza impostarlo di sola lettura o sfocandolo?

risposta

5

Non ho incontrato il modo di nascondere la tastiera. Ma hai pensato a un modo alternativo di visualizzare "input". Un'opzione sarebbe utilizzare <input type="month" /> che porta il selettore mese nativo in iOS5.

La seconda opzione è lo styling ad es. span element come input element (-webkit-appearance non funziona su iOS) e aggiunta tabindex per l'elemento. Questo potrebbe anche funzionare, anche se non sono a conoscenza del raccoglitore del mese che stai utilizzando.

Terza opzione: non è possibile impedire il processo di convalida quando viene sfocata manualmente la sfocatura del campo?

+1

Nizza! '' getta un mese migliore picker up per iPhone. Opera 11.6 apre un full date picker quindi dovrò aggirarlo in qualche modo. Questo non risponde alla domanda come chiesto ma sembra che risolva il problema. –

+1

Così ho fatto un assegno di agente utente schifoso per iPhone e iPod, e impostare l'attributo type su "month" se vero e solo caricato monthpicker se false. Funziona alla grande. Rivisiterò con una schermata + suuchstart invece che con il controllo degli user agent in seguito. Grazie mille! –

2

ho avuto una stessa edizione in Drupal, dove i campi di input saranno aggiungendo dinamicamente, così ho aggiunto alcuni js, controllando per Iphone/Ipad e ha aggiunto "sola lettura" proprietà

var checkUserAgent = navigator.userAgent; 
    if (checkUserAgent.match(/iPad/i) || checkUserAgent.match(/iPhone/i)) { 
     var checkBabyId1 = $('#babys_due_date_id').length > 0; 
     if (checkBabyId1 == true) { 
      $('#babys_due_date_id').find('input').prop('readonly', true); 
     } 
    } 
Problemi correlati