¿Cómo agregaría esto a un archivo JavaScript separado? Empecé con esto, pero parece que no funciona. El error de la consola es Uncaught ReferenceError: isNumberKey no está definido.
<input min='0' type="number" onkeypress="return isNumberKey(event);> function isNumberKey(event) { return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57; } <input min='0' type="number" onkeypress="return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57">Pude solucionar mi problema simplemente haciendo esto. No estoy seguro de por qué .NET se estaba volviendo loco acerca de cómo lo llamaba usando WebPack.
const Test = document.getElementById("Test"); Test.onkeypress = isNumberKey; // Prevent pasting (since pasted content might include non-number characters) Test.onpaste = event => false; function isNumberKey(event) { return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57; } <input min='0' id="Test" type="number" onkeypress="isNumberKey();>¿Está poniendo la función dentro de una etiqueta de script ? Su código me funciona cuando lo hago (también le faltaba un paréntesis de cierre con el evento onkeypress )
<input min='0' type="number" onkeypress="return isNumberKey(event);"/> <script> function isNumberKey(event) { return (event.charCode == 8 || event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57; } </script> Editar: para colocar en un archivo separado, le gustaría agregar una etiqueta de secuencia de script con un src , como este:
<script src="my-js-file-name.js"></script>Funciona bien, pero su operador ternario no estaba haciendo nada más que devolver un valor nulo o booleano, por lo que no sucedía nada notable. Mira lo que sucede cuando asignas el ternario a una variable y la consola lo registra:
function isNumberKey(e) { const res = (e.charCode == 8 || e.charCode == 0) ? null : e.charCode >= 48 && e.charCode <= 57 console.log(res) } <input min='0' type="number" onkeypress="isNumberKey(event);">