2011-10-19 4 views
7

Ho un sito che contiene un modulo per consentire agli utenti di inserire i dati della carta di credito. I campi per il numero della carta, numero di emissione, numero CVC e l'importo che desiderano depositare utilizzano una casella di immissione in un modulo HTML con il tipo "numero".C'è un modo per impedire a Mobile Safari di inserire virgole nei campi numerici nei moduli HTML?

Il Safari mobile aggiornato fornito con iOS 5 inserisce automaticamente virgole in numeri nei campi di inserimento "numero". Questo non sembra solo stupido in un numero CC, ma infrange la mia convalida. C'è un modo per fermare questo?

L'unico scopo dell'utilizzo del "numero" rispetto al "testo" è quello di fare in modo che iOS e Android visualizzino una tastiera morbida solo numeri anziché la tastiera completa.

Ho provato a utilizzare un input di tipo "testo" con un pattern impostato su "[0-9] *". Questo fa apparire la tastiera dei numeri su iOS ma non su Android. Inoltre, non consente di inserire il numero con un punto decimale.

Sarei molto grati per qualsiasi suggerimento :)

Grazie

+1

Non solo numeri CC, ma i campi di codice di avviamento postale semplice hanno rotto ovunque. Un utente inserisce "55555" ed è ora formattato in "55, 555". – azdev

risposta

1

Sto avendo lo stesso problema. Penso che abbia a che fare con il formato della regione nelle tue impostazioni. È possibile impostare il tipo su "testo":

type = testo pattern = "[0-9] {1,4} (\. [0-9] {2})?"

per un valore compreso tra 0 e 9999,99. Tuttavia, questa soluzione non attiva la tastiera numerica su iOS 5. o conservare le impostazioni internazionali sovrascrivere (dot/virgola) e impostare:

type = numero del passo = "0.01" max = "9999.99"

per i valori decimali compresi tra 0 e 9999.99. Anche mancata validazione o campi vuoti con attributo "richiesti" non impediscano forma di presentare in Safari 5.1 (OS X e IOS).

9

Ho cambiato il mio da "numero" a "tel" e non vedo più il problema.

+2

Ho fatto questo per il numero CC, problema e CVC. Il problema con "tel" è che non consente un punto decimale quindi non può essere utilizzato per i campi valuta. – user1003623

+0

Per i campi valuta, è così sbagliato per loro essere formattati con virgole? Sembra che "tel" funzioni per tutte le situazioni in cui le virgole non hanno senso. –

5

Sei vicino - tutto ciò che devi fare è impostare il modello su "[0-9] *" e mantenere il tipo come "numero".

+1

Non consente punti decimali quindi inutili per i campi di valuta :( – user1003623