floating-point type - Esiste un tipo di input float in HTML5?





number decimal (7)


Il tipo di number ha un valore di step che controlla quali numeri sono validi (insieme a max e min ), che per impostazione predefinita è 1 . Questo valore viene anche utilizzato dalle implementazioni per i pulsanti stepper (ovvero premendo su aumenta di step ).

Basta cambiare questo valore con qualsiasi cosa sia appropriata. Per soldi, sono probabilmente previsti due decimali:

<input type="number" step="0.01">

(Avrei anche impostato min=0 se può essere solo positivo)

Se preferisci consentire un numero qualsiasi di posizioni decimali, puoi utilizzare step="any" (anche se per le valute, ti consiglio di attenersi a 0.01 ). In Chrome e Firefox, i pulsanti stepper aumenteranno / diminuiranno di 1 quando ne userai any . (grazie alla risposta di Michal Stefanow per averne fatto notare, e vedere qui le specifiche pertinenti )

Ecco un parco giochi che mostra come i vari passaggi influenzano vari tipi di input:

<form>
  <input type=number step=1 /> Step 1 (default)<br />
  <input type=number step=0.01 /> Step 0.01<br />
  <input type=number step=any /> Step any<br />
  <input type=range step=20 /> Step 20<br />
  <input type=datetime-local step=60 /> Step 60 (default)<br />
  <input type=datetime-local step=1 /> Step 1<br />
  <input type=datetime-local step=any /> Step any<br />
  <input type=datetime-local step=0.001 /> Step 0.001<br />
  <input type=datetime-local step=3600 /> Step 3600 (1 hour)<br />
  <input type=datetime-local step=86400 /> Step 86400 (1 day)<br />
  <input type=datetime-local step=70 /> Step 70 (1 min, 10 sec)<br />
</form>

Come al solito, aggiungerò una breve nota: ricorda che la validazione lato client è solo una comodità per l'utente. Devi anche convalidare sul lato server!

Secondo html5.org , l'attributo "valore" del tipo di input "valore", se specificato e non vuoto, deve avere un valore che è un numero in virgola mobile valido. "

Eppure è semplicemente (nell'ultima versione di Chrome, comunque), un controllo "updown" con interi, non float:

<input type="number" id="totalAmt"></input>

Esiste un elemento di input a virgola mobile nativo in HTML5 o un modo per far funzionare il tipo di input numerico con float, non ints? O devo ricorrere a un plug-in dell'interfaccia utente jQuery?




Puoi usare:

<input type="number" step="any" min="0" max="100" value="22.33">

spero di aiutare, saluti




È possibile utilizzare l'attributo step per il numero del tipo di input:

<input type="number" id="totalAmt" step="0.1"></input>

step="any" consente qualsiasi decimale.
step="1" non consentirà decimali.
step="0.5" consentirà 0.5; 1; 1.5; ...
step="0.1" consentirà 0.1; 0,2; 0,3; 0,4; ...




Ho appena avuto lo stesso problema, e ho potuto risolvere il problema semplicemente inserendo una virgola e non un punto / punto nel numero a causa della localizzazione francese .

Quindi funziona con:

2 è OK

2,5 è OK

2.5 è KO (il numero è considerato "illegale" e si riceve un valore vuoto).







io faccio così

 <input id="relacionac" name="relacionac" type="number" min="0.4" max="0.7" placeholder="0,40-0,70" class="form-control input-md" step="0.01">

quindi, definisco min in 0.4 e max in 0.7 con il passo 0.01: 0.4, 0.41, 0,42 ... 0.7




È possibile generalizzare la tecnica di eccezione in modo utile restituendo valori più utili di True e False. Ad esempio questa funzione mette le virgolette intorno a virgolette ma lascia numeri da soli. Che è proprio quello di cui avevo bisogno per un filtro veloce e sporco per rendere alcune definizioni di variabili per R.

import sys

def fix_quotes(s):
    try:
        float(s)
        return s
    except ValueError:
        return '"{0}"'.format(s)

for line in sys.stdin:
    input = line.split()
    print input[0], '<- c(', ','.join(fix_quotes(c) for c in input[1:]), ')'




html5 input floating-point