2013-08-09 12 views
7

Come si può limitare una casella di input per utilizzare solo numeri.Limitazione di una casella di input solo ai numeri 0-9

Quindi se un utente dovesse digitare qualcosa da a-z, non funzionerà nella casella di input.

Per alcuni questo può sembrare facile ma per me, sembra una scienza missilistica.

no jQuery per favore.

<!DOCTYPE html> 

<html> 

<head> 

</head> 

<body> 

<input type="text" id="numbersonly" /> 

</body> 

</html> 
+7

Ecco [un duplicato] (http://stackoverflow.com/q/469357/778118), e [un altro] (http://stackoverflow.com/q/995183/778118) e [altro] (http://stackoverflow.com/q/14585407/778118) ... Questa domanda è stata posta dozzine di volte. – jahroy

risposta

23

Si potrebbe usare un ingresso con HTML5 number tipo

<input type="number" /> 

o JavaScript, come input con un tipo number non really limit di ingresso ai soli numeri:

document.getElementById('numbersonly').addEventListener('keydown', function(e) { 
    var key = e.keyCode ? e.keyCode : e.which; 

    if (!([8, 9, 13, 27, 46, 110, 190].indexOf(key) !== -1 || 
     (key == 65 && (e.ctrlKey || e.metaKey )) || 
     (key >= 35 && key <= 40) || 
     (key >= 48 && key <= 57 && !(e.shiftKey || e.altKey)) || 
     (key >= 96 && key <= 105) 
     )) e.preventDefault(); 
}); 

FIDDLE

+0

Ho incontrato un browser Firefox con questa soluzione proposta quando inserisco% o^& o *. Questa soluzione ha accettato quei personaggi. Grazie. – Frank

+2

Java Script non funziona con i tasti numerici e anche non funziona backspace – Apurva

+1

Questa risposta è un buon inizio ma ha un paio di difetti critici: (1) non è possibile utilizzare il backspace, cancellare o i tasti freccia per regolare l'input e (2) consente caratteri non numerici quando si preme il tasto 'shift' o' ctrl' più un numero (es. @, #, $). Dai un'occhiata a questa risposta: http://stackoverflow.com/questions/995183/how-to-allow-only-numeric-0-9-in-html-inputbox-using-jquery#answer-995193 –

Problemi correlati