usa regex.
<input id="inputBox" name="inputBox" />
<script type="text/javascript">
var inputBox = document.getElementById('inputBox');
inputBox.onchange = function(){
inputBox.value = inputBox.value.replace(/[^0-9]/g, '');
}
</script>
oppure è possibile utilizzare un timer per controllare costantemente quel campo.
<input id="inputBox" name="inputBox" />
<input id="inputBox2" name="inputBox2" />
<script type="text/javascript">
var timer = new Array();
function checkFields(el){
var inputBox = document.getElementById(el);
inputBox.value = inputBox.value.replace(/[^0-9]/g, '');
clearTimeout(timer[el]);
timer[el] = setTimeout((function(){ checkFields(el); }), 50);
};
function timerFields(el){
timer[el] = setTimeout((function(){ checkFields(el); }), 50);
};
timerFields('inputBox');
timerFields('inputBox2');
</script>
fonte
2012-08-21 07:58:40
è “-” (usato come segno meno) numerico? In generale, non è una buona idea cancellare i caratteri dall'input dell'utente. Se volevo ordinare 100 articoli, ma in qualche modo sono riuscito a digitare 1oo invece, vorrei essere avvisato e richiesto una correzione, piuttosto che avere il mio ordine cambiato in modo silenzioso in 1 elemento. –
Grazie per il commento, lo terrò a mente per il futuro. In questo momento devo risolvere solo questo schema. – halofourteen