2016-02-10 27 views
5

Sto utilizzando una casella di input HTML5 con type="number". Per quanto riguarda alcune documentazioni, dovrebbe essere possibile inserire un numero con una virgola (non con punto) se uso anche l'attributo lang="". Funziona in Firefox, ma non in Chrome (non accetta una virgola). Come posso convincere Chrome ad accettare la virgola nella casella di inserimento. Il mio problema è che i nostri utenti tedeschi si aspettano di poter inserire una virgola anziché un periodo lì.La casella di input HTML5 con type = "number" non accetta la virgola nel browser Chrome

https://jsfiddle.net/byte2702/y3Lpfw7m/

Please enter a number with comma: <br/> 
<input id="num" type="number" step="any" lang="de" pattern="-?[0-9]+[\,.]*[0-9]+" /> 
+1

Penso che ciò dipenda dalla configurazione locale del client. Firefox è buono con questo, ma Chrome semplicemente non lo ammette. La soluzione alternativa può essere rilevata quando si verifica la sfocatura o l'invio e quindi sostituire il punto con una virgola con javascript. –

+1

Qui in Brasile usiamo anche le virgole. Puoi usare un semplice input di testo e fare alcune cose di Javascript con esso. Ad esempio è possibile creare due pulsanti solo per simulare il funzionamento dell'input del numero. – Phiter

+0

Lo proverò. Molte grazie a entrambi. Avevo già in mente type = "text", ma volevo provare prima type = "number". –

risposta

1

A partire da ora (30/08/2017), la risposta di Antoine Thiry sembra non essere più valida in Chrome (la mia versione è 60.0.3112.113). Purtroppo non ho altri suggerimenti, oltre a simulare type = "number" con javascript.

+0

Sì. Questo è quello che avevamo fatto anche allora. Abbiamo usato jQuery/JavaScript per risolvere il problema. –

0

Ho avuto lo stesso problema, alcuni dati non sono state salvate perché i nostri utenti hanno usato una virgola invece di un periodo. Ho trovato this post chi ha risposto alla tua domanda.

Tutto ho aggiunto è presente nelle mie ingressi per i numeri: lang='en-150'

<input type='number' lang='en-150'/> 

e dovrebbe funzionare sia in Chrome e Firefox.

+0

Ho letto il post che hai fornito e ho provato il tuo suggerimento. Non riuscivo a farlo funzionare in chrome. –

+0

Sembra non funzionare –

+0

@vignesh raja, come ha sottolineato ogier, questa soluzione sembra non essere più valida nelle ultime versioni di chrome ... –

3

in realtà, se ho letto correttamente la documentazione, pattern è non supportato per type=number. di conseguenza, attenersi a type=text e quindi aggiungere pattern="..." per la convalida del front-end. nel passaggio successivo, sarà necessario convertire l'input di testo in un numero reale se non fosse compatibile con JavaScript/formato di calcolo.

2017 e ancora una buona soluzione per questo problema comune ...

+0

Gli utenti mobili ricevono un numero quando fanno clic sull'input. se lo cambi in testo questo non è più il caso. Questo non va bene. –

0

Per il momento, ho cercato

<html lang="en"> 

o

<input type="number" lang="en"> 

e mi permetta di inserire qualsiasi : virgola o punto. L'ho provato su desktop Ubuntu e mobile Android in Firefox e Chrome.