HTML 5
Puede usar el número de tipo de entrada HTML5 para restringir solo las entradas de número:
<input type="number" name="someid" />
Esto solo funcionará en el navegador de quejas HTML5. Asegúrese de que el documento de su documento html sea:
<!DOCTYPE html>
Consulte también https://github.com/jonstipe/number-polyfill para obtener asistencia transparente en navegadores antiguos.
JavaScript
Actualización: hay una solución nueva y muy simple para esto:
Le permite usar cualquier tipo de filtro de entrada en un texto <input>
, incluidos varios filtros numéricos. Esto manejará correctamente Copiar + Pegar, Arrastrar + Soltar, métodos abreviados de teclado, operaciones de menú contextual, teclas que no se pueden escribir y todos los diseños de teclado.
Vea esta respuesta o pruébela usted mismo en JSFiddle .
Para fines generales, puede tener la validación JS de la siguiente manera:
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : evt.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
<input name="someid" type="number" onkeypress="return isNumberKey(event)"/>
Si desea permitir decimales, reemplace la "condición if" con esto:
if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57)))
Fuente: la entrada de texto HTML solo permite la entrada numérica
Demostración de JSFiddle: http://jsfiddle.net/viralpatel/nSjy7/