actualmente tengo el siguiente código
<input type="number" />
se trata de algo como esto
Las pequeñas cosas del selector a la derecha permiten que el número entre en negativo. ¿Cómo evito eso?
Tengo dudas sobre el uso type="number"
, está causando más problemas de los que está resolviendo, de todos modos voy a revisar la sanidad, ¿debería volver a usarlo type="text"
?
Respuestas:
Agregar un
min
atributofuente
min="0.000001"
ayudará en la mayoría de los casos. Más de 6 decimales, JavaScript lo convertirá a formato de exponente.He encontrado otra solución para evitar el número negativo.
fuente
oninput="validity.valid||(value='');"
se detiene uno de los números de escritura-veDepende de cuán preciso quieras ser. Si desea aceptar solo enteros, que:
Si desea flotadores con, por ejemplo, dos dígitos después del punto decimal:
fuente
max
valor.Puede forzar la entrada para que contenga solo enteros positivos agregando
onkeypress
dentro de lainput
etiqueta.Aquí, se
event.charCode >= 48
garantiza que solo se devuelvan números mayores o iguales a 0, mientras que lamin
etiqueta garantiza que puede llegar a un mínimo de 1 desplazándose dentro de la barra de entrada.fuente
Puede usar lo siguiente para
type="number"
aceptar solo números positivos:fuente
Puede evitar la entrada negativa en forma de entrada numérica de la siguiente manera:
fuente
Tratar
<input type="number" pattern="^[0-9]" title='Only Number' min="1" step="1">
fuente
Si necesita ingresar texto , el patrón también funciona
fuente
No puedo encontrar la solución perfecta ya que algunos funcionan para ingresar pero no para copiar y pegar, algunos son al revés. Esta solución me funciona. Impide el número negativo, escribiendo "e", copia y pega el texto "e".
crear una función
agregue estas propiedades a la entrada. estos dos impiden copiar y pegar textos que no sean números, incluida "e". necesitas tener ambos juntos para que surtan efecto.
Si está utilizando Vue , puede consultar esta respuesta aquí . Lo he extraído en un mixin que se puede reutilizar.
fuente
agregue este código en su tipo de entrada;
por ejemplo:
fuente
Otra solución es usar Js para hacerlo positivo (la opción min se puede deshabilitar y no es válida cuando el usuario escribe smth) ¡También se puede usar el evento negativo si no es necesario y encendido ('keydown')!
fuente
Depende de si desea un campo int o flotante. Así es como se verían los dos:
El campo int tiene la validación correcta adjunta, ya que su mínimo es 1. Sin embargo, el campo flotante acepta 0; Para lidiar con esto, puede agregar un validador de restricción más :
JS Violín aquí.
Tenga en cuenta que ninguna de estas soluciones impide por completo que el usuario intente escribir una entrada no válida, pero puede llamar
checkValidity
oreportValidity
averiguar si el usuario ha ingresado una entrada válida.Por supuesto, aún debe tener la validación del lado del servidor porque el usuario siempre puede ignorar la validación del lado del cliente.
fuente
Prueba esto:
null
ynegitive
valora.fuente
Si intenta ingresar un número negativo, el evento onkeyup lo bloquea y si usa la flecha en el número de entrada, el evento onblur resuelve esa parte.
fuente
fuente
Con el tipo de entrada de texto puede usar esto para una mejor validación,
fuente
Prueba esto:
fuente