2013-07-12 9 views
5

Ho un problema abbastanza semplice ma frustrante, in sostanza ho cercato per forzare i campi di input a comportarsi più come tipi di input di testo (dove non correggono voci di numeri errati, come "0..7" per troncare a "0") e lasciare che JS form validhi e che la convalida backend faccia il suo lavoro. Tuttavia, mentre voglio consentire all'utente di inserire ciò che vogliono nel campo (input type = "text"), voglio visualizzare la tastiera del tastierino numerico.Mobile Safari - Come impostazione predefinita per tastiera numerica completa per immissione decimale w/o type = "numero", o disabilitare Safari input type = correzione "numero"

originale:

<input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5 /> 

I tentativi di correzione:

Funziona su iPad, ma non su iPod, come iPod visualizzare il tastierino numerico compatto SENZA punti decimali:

<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d*"/> 

doesn' funziona su iPod, in quanto visualizza la tastiera a testo completo, ma non ha come predefinito il "lato numerico" della tastiera intera con un decimale:

<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d+(\.\d*)?"/> 

Qualcuno ha qualche idea? O per impedire a Mobile Safari di correggere i tipi di numeri di input (i tipi di numero visualizzano la tastiera corretta su iPod e iPad, ma ha integrato la correzione sui campi quando la tastiera si nasconde) o di forzare la tastiera sul lato Numero dell'iPod completo tastiera?

FYI: Questo suona molto simile al mio problema, tuttavia potrebbe essere necessaria una soluzione diversa. Suona come desideravano la tastiera numerica "Full" di apparire di default, ma senza numero Autoformattazione che Safari fa in campo quando si entra altri personaggi.

Force a numeric keyboard but allow punctuation: HTML5, mobile Safari

+0

A quanto pare, un attributo "inputmode" è anche nelle opere per: http://html5doctor.com/html5-forms-input-types/ Qualcuno sa molto su questo? Questa sarebbe la cosa migliore, onestamente. – aohm1989

+0

Sfortunatamente, sembra che gli attributi inputmode su questi input numerici (che devono essere trattati come testo rispetto alla correzione automatica che esegue su numeri non validi), non risolvono il problema neanche :( – aohm1989

risposta

1

So che questo è vecchio, ma vedo questo viene chiesto Parecchio.

impedire la convalida del tipo di immissione del numero (e di altri tipi) è possibile utilizzare l'attributo novalidate sull'elemento <form>:

<form novalidate> 
    <input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5> 
</form> 

ci si può comunque la tastiera numerica, ma non forzerà il utente per inserire solo numeri.

Problemi correlati