Tengo el siguiente código para permitir que el usuario ingrese solo números, esto funciona en el navegador. Pero cuando accedo desde el móvil, creo que no puedo obtener el código clave correcto. Entonces, ¿cuáles son los códigos clave para el mismo. No es lo mismo que la web.
// block e char, dot, hiphen and spacebar if (event.key === 'e' || [46, 45, 32].includes(event.charCode)) { event.preventDefault(); }else{ // allow to input logic }¿Cuáles son los códigos de caracteres para puntos, guiones y espacios que funcionarán tanto para el teclado web como para el móvil?
Su código está usando event.charCode, que no existe.
evento.que.charCode hace. Además no nos dices qué evento. Hay keypress, keydown, keyup, input y algunos no establecen algunos de los valores de evento esperados
Probado en Android e iOS usando browserstack
Solo uno que parece funcionar en React en Android
export default function App() { const handleInput = (event) => { // eslint-disable-next-line event.target.value = event.target.value.replace(/[e\.\- ]/g, ""); console.log(event.target.value); }; return ( <div className="App"> <input type="number" onInput={handleInput} /> </div> ); }Keydown y los nombres de código que se recomienda
document.getElementById("positiveIntOnly").addEventListener("keydown",function(e) { // block e char, dot, hyphen and spacebar if (["KeyE", "Period", "Minus", "Space"].includes(e.code)) { event.preventDefault(); console.log(e.code); } }); <input type="number" id="positiveIntOnly" />O como lo menciona TJ, e.key:
document.getElementById("positiveIntOnly").addEventListener("keydown",function(e) { // block e char, dot, hyphen and spacebar if ("e.- ".includes(e.key)) { event.preventDefault(); console.log(e.key); } }); <input type="number" id="positiveIntOnly" />Establezca un mínimo y un máximo y use una expresión regular para manejar el pegado
<input type="number" id="positiveIntOnly" min="0" max="999" step="1" oninput="this.value = this.value.replace(/[e\.\- ]/g,'')" />Puede simplemente usted la propiedad key :
["e" ,"E", "-", ".", " "].includes(e.key) Se supone que no debes usar la propiedad charCode ya que está en desuso.