Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

330
Visualizações
¿Cómo restringir la entrada de un valor decimal en el número de tipo de entrada?

Así que quiero tener una entrada de tipo número <input type="number"> y quiero RESTRINGIR a los usuarios de INGRESAR VALOR DECIMAL

Nota: estoy ocultando los botones giratorios del texto de tipo de entrada.Conozca más aquí

EDITAR: ¡CUALQUIER COSA FUNCIONARÁ! ¡INCLUSO JAVASCRIPT!


Busqué mucho pero no encontré nada.

Encontré esta respuesta , pero básicamente bloquea el uso de cualquier otra tecla en el teclado, excepto las teclas numéricas, por lo que ocurren problemas básicos, como que el usuario no puede usar la tecla de retroceso y cortar el número ingresado, otro problema es que el usuario no puede usar tab para cambie el enfoque a la siguiente entrada.


¡Gracias!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La prevención de la entrada del usuario se puede hacer con JavaScript. Usaría el evento de input para capturar valores, ya que es una interfaz unificada, que abarca cualquier método de entrada que pueda pensar en keyup , paste , pointer events, touch events, etc.

 document.querySelector('input').addEventListener('input', e => { e.target.value = Math.round(e.target.value.replace(/\D/g,'')) });
 <input>

¡Pero realmente no deberías hacerlo! Al menos por las siguientes razones:

  1. Prohibir la entrada del usuario es, en general, percibido como una falta de respeto y aleja a los usuarios. En resumen, reduce cualquier métrica de participación del usuario que se te ocurra (canalización, ventas, visitas, intercambio, etc.). No confíes en mi palabra. Realice algunas pruebas A/B: presente el mismo formulario con y sin bloquear la entrada del usuario y observe los resultados.
  2. Los elementos de formulario son solo herramientas para ayudar a los usuarios a brindarle datos. Pero son completamente pasables. Si me das un formulario, puedo enviar lo que quiera usándolo, simplemente abriendo la consola del navegador. La validación debe hacerse en el lado del servidor. Si está utilizando el valor para hacer algo en el lado del cliente, desinfecte el valor de entrada en el método, sin cambiar la entrada del usuario.
  3. Una forma respetuosa de informar a los usuarios que los valores decimales no son válidos es hacer que la entrada sea :invalid , usando el atributo de pattern (p. ej.: pattern="[0-9]" ), aplicando el estilo correspondiente (p. ej.: :invalid { border-color: red } ), y mostrando un mensaje apropiado.
    No elimine ni bloquee la entrada del usuario. Lo harán ellos mismos si les dices por qué el valor no es válido.
  4. Al seguir los estándares web, su solución perdura. Cuando se le ocurran hacks, siempre habrá algún dispositivo extraño en el que su hack no funcione. No sabes dónde estarán las cosas dentro de 1 o 2 años, no importa 5 o 10.
  5. Por último, pero no menos importante, eche un vistazo más de cerca a Validación de restricciones . Deberá conocerlo y usarlo al crear UX de calidad y formularios accesibles.
about 4 years ago · Juan Pablo Isaza Relatório

0

Esta es una opción para crear un elemento de entrada usando javascript para limitar los valores que se pueden ingresar. Creo una matriz de teclas permitidas, incluidos todos los dígitos, el retroceso y el tabulador según lo especificado. Agregué un detector de eventos para el evento keydown, y si la tecla presionada no está en el grupo permitido, evito la acción predeterminada o evito que se ingrese el valor.

También agregué un detector de eventos al evento de pegado, ya que puede hacer clic derecho en pegar e ingresar información que no cumple con los criterios. En lugar de tratar de validar los valores pegados, deshabilito pegar todos juntos.

Si tiene alguna pregunta, por favor pregunte.

 const allowedKeys = [..."0123456789", "Backspace", "Tab"]; const myInput = document.querySelector("input"); myInput.addEventListener("keydown", e => { const key = e.key; const allowed = allowedKeys.includes(key); if (!allowed) e.preventDefault(); }); myInput.addEventListener("paste", e => e.preventDefault());
 <input type="number">

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda