Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

196
Vistas
¿Cómo puedo validar este campo de texto donde no permitiría el envío si el valor ingresado es negativo?

Tengo este number de tipo de campo de texto, quiero establecer un mínimo de 0 y un campo de texto que no acepte valores negativos. Pude hacer eso, sin embargo, una vez que escribo en él, no podría eliminar el 0 , primero tendría que ir al frente del 0 y luego escribir un número, y solo entonces se eliminaría el 0 . ¿Qué puedo hacer para solucionarlo o hay formas más adecuadas de hacerlo?

Códigos y caja:https://codesandbox.io/s/textfield-7sfdph?file=/demo.js:127-882

Códigos:

 export default function BasicTextFields() { const [fee, setFee] = useState(0); const amount = parseInt(1000); const total = Number(amount) + Number(fee); const handleSubmit = async (e) => { e.preventDefault(); console.log(" submit"); }; return ( <form onSubmit={{ handleSubmit }}> <TextField label="Fee" type="number" value={fee} onChange={(e) => { if (e.target.value === "") { setFee(0); } else { setFee(parseInt(e.target.value)); } }} InputProps={{ inputProps: { min: 0 } }} /> <button type="submit">Submit</button> <br /> Total: {total} </form> ); }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Su función onChange establece el valor en 0 siempre que el valor sea una cadena vacía. Cuando elimina algo, está cambiando efectivamente el valor, por lo que se llamará a la función onChange .

Personalmente, llamaría a setFee con el valor que escribieron porque type=number ya evitará que los usuarios escriban cualquier cosa que no sea un número y les permitirá borrar el campo.

Puede manejar el caso cuando el valor está vacío con validación o en la función onSubmit . Esta es probablemente una mejor experiencia de usuario.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede verificar si el número es negativo si es así, luego establezca el valor en 0

 const total = Number(amount) + (fee ? Number(fee) : 0); // code if (Number(e.target.value) < 0) { setFee(0); } else { setFee(parseInt(e.target.value)); }

luego, al enviar, verifique si el valor no está definido

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda