Estoy creando una página web donde tengo un campo de texto de entrada en el que quiero permitir solo caracteres numéricos como (0,1,2,3,4,5 ... 9) 0-9.
¿Cómo puedo hacer esto usando jQuery?
jquery
html
validation
numeric
Prashant
fuente
fuente
Respuestas:
Nota: esta es una respuesta actualizada. Los comentarios a continuación se refieren a una versión anterior que se equivocó con los códigos clave.
jQuery
Pruébelo usted mismo en JSFiddle .
No hay una implementación nativa de jQuery para esto, pero puede filtrar los valores de entrada de un texto
<input>
con el siguienteinputFilter
complemento (admite Copiar + Pegar, Arrastrar + Soltar, métodos abreviados de teclado, operaciones de menú contextual, teclas no tecleables, la posición del cursor, diferentes diseños de teclado y todos los navegadores desde IE 9 ):Ahora puede usar el
inputFilter
complemento para instalar un filtro de entrada:Vea la demostración JSFiddle para más ejemplos de filtros de entrada. ¡También tenga en cuenta que aún debe hacer la validación del lado del servidor!
JavaScript puro (sin jQuery)
jQuery no es realmente necesario para esto, también puede hacer lo mismo con JavaScript puro. Mira esta respuesta .
HTML 5
HTML 5 tiene una solución nativa con
<input type="number">
(consulte la especificación ), pero tenga en cuenta que la compatibilidad del navegador varía:step
,min
ymax
atributos.e
yE
en el campo. También vea esta pregunta .Pruébelo usted mismo en w3schools.com .
fuente
Aquí está la función que uso:
Luego puede adjuntarlo a su control haciendo:
fuente
return this.each(function()
?each
fromreturn this.each(function()
es permitir múltiples objetos como dijo HaggleLad, y lareturn
parte es devolver el objeto jQuery nuevamente a la persona que llama, para permitir el encadenamiento como$("input[type='text'").ForceNumericOnly().show()
En línea:
Estilo discreto (con jQuery):
fuente
onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')"
./[^0-9]|^0+(?!$)/g
para evitar series iniciales de cero.Puede usar una simple expresión regular de JavaScript para probar caracteres puramente numéricos:
Esto devuelve verdadero si la entrada es numérica o falsa si no.
o para el código clave del evento, uso simple a continuación:
fuente
Puede usar en eventos de entrada como este:
Pero, ¿qué es este privilegio de código?
fuente
decimal
entre0.0
a24.0
Soy incapaz de dejarlo entrar en el.
this.value = Number(this.value.replace(/\D/g, ''));
Corto y dulce, incluso si esto nunca encontrará mucha atención después de más de 30 respuestas;)
fuente
Use la función JavaScript isNaN ,
if (isNaN (document.getElementById ('inputid'). val ()))Actualización: Y aquí hay un buen artículo que habla de ello pero usa jQuery: Restricción de entrada en cuadros de texto HTML a valores numéricos
fuente
document.getElementById('inputid').val()
amigo ... eso sigue siendo jquery..val()
Es una cosa jQuery. uso.value
isNaN
solo es una mala idea debido a la coerción de tipo JavaScript.decimal
entre0.0
a24.0
Soy incapaz de dejarlo entrar en el.
Fuente: http://snipt.net/GerryEng/jquery-making-textfield-only-accept-numeric-values
fuente
Lo uso en nuestro archivo js común interno. Solo agrego la clase a cualquier entrada que necesite este comportamiento.
fuente
Una más simple para mí es
fuente
this.value.replace(/[^0-9\.]/g,'');
para incluir los requisitos de OP de 0-9¿Por qué tan complicado? Ni siquiera necesita jQuery porque hay un atributo de patrón HTML5:
Lo bueno es que muestra un teclado numérico en dispositivos móviles, que es mucho mejor que usar jQuery.
fuente
Puedes hacer lo mismo usando esta solución muy simple
Me referí a este enlace para la solución. ¡Funciona perfectamente!
fuente
decimal
entre0.0
a24.0
Soy incapaz de dejarlo entrar en el.
Puede probar la entrada del número HTML5 :
Para los navegadores no compatibles, existen fallos de Modernizr y Webforms2 .
fuente
El atributo de patrón en HTML5 especifica una expresión regular con la que se compara el valor del elemento.
Nota: El atributo de patrón funciona con los siguientes tipos de entrada: texto, búsqueda, url, teléfono, correo electrónico y contraseña.
[0-9] se puede reemplazar con cualquier condición de expresión regular.
{1,3} representa un mínimo de 1 y se puede ingresar un máximo de 3 dígitos.
fuente
decimal
entre0.0
a24.0
Soy incapaz de dejarlo entrar en el.
Algo bastante simple usando jQuery.validate
fuente
función suppressNonNumericInput (evento) {
fuente
decimal
entre0.0
a24.0
Soy incapaz de dejarlo entrar en el.
Llegué a una solución muy buena y simple que no impide que el usuario seleccione texto o copie y pegue como lo hacen otras soluciones. jQuery style :)
fuente
Puede usar esta función de JavaScript:
Y puede vincularlo a su cuadro de texto de esta manera:
Utilizo lo anterior en producción, y funciona perfectamente, y es un navegador cruzado. Además, no depende de jQuery, por lo que puede vincularlo a su cuadro de texto con JavaScript en línea:
fuente
Creo que ayudará a todos
fuente
if(event.which!=8 && event.which!=0 && (event.which<48 || event.which>57) && (event.which<96 || event.which>105)) return;
Escribí el mío basado en la publicación anterior de @ user261922, ligeramente modificado para que pueda seleccionar todo, pestaña y pueda manejar múltiples campos de "solo número" en la misma página.
fuente
Aquí hay una solución rápida que creé hace algún tiempo. Puedes leer más sobre esto en mi artículo:
http://ajax911.com/numbers-numeric-field-jquery/
fuente
Desea permitir la pestaña:
fuente
Aquí hay una respuesta que usa jQuery UI Widget factory. Puede personalizar qué caracteres están permitidos fácilmente.
Eso permitiría números, signos numéricos y cantidades en dólares.
fuente
Esto parece irrompible.
fuente
Debe asegurarse de que el teclado numérico y la tecla tab también funcionan
fuente
Quería ayudar un poco, e hice mi versión, la
onlyNumbers
función ...Simplemente agregue la etiqueta de entrada "... input ... id =" price "onkeydown =" return onlyNumbers (event) "..." y ya está;)
fuente
También me gustaría responder :)
Eso es todo ... solo números. :) Casi puede funcionar solo con el 'desenfoque', pero ...
fuente
La forma simple de verificar que el valor de entrada sea numérico es:
fuente
Solo necesita aplicar este método en Jquery y puede validar su cuadro de texto para aceptar solo números.
Prueba esta solución aquí
fuente
Puede probar la entrada del número HTML5:
Este elemento de etiqueta de entrada ahora solo tomaría un valor entre 0 y 9, ya que el atributo min se establece en 0 y el atributo max se establece en 9.
Para obtener más información, visite http://www.w3schools.com/html/html_form_input_types.asp
fuente