Aquí está el código que tengo hasta ahora y las funciones limitantes para las que quiero que la entrada rechace
cualquier ayuda sería muy apreciada
function myFunction(e, low, high) { console.log("called"); console.log("low" + low); console.log("high" + high); console.log(e.target.value + e.key); var charValue = String.fromCharCode(e.keyCode); var nextValue = e.target.value + e.key; if (((!/^(\d+)?([.]?\d{0,1})?$/.test(e.target.value + e.key)) && (e.which != 8)) && (nextValue < 1 || nextValue > 5)) { e.preventDefault() } } <!DOCTYPE html> <html> <form name="addtext"> SetPoint :<input id="setPoint" type="text" name="setPoint" onkeydown="myFunction(event,3, 5)" /><br /> </form>A menos que juegue Code Golf, no hay premios por agrupar toda la lógica en una sola condición.
Divida la condición en múltiples declaraciones if para que pueda implementar su lógica claramente.
Debe reemplazar el 1 y el 5 codificados de forma rígida con low y high .
function myFunction(e, low, high) { console.log("called"); console.log("low" + low); console.log("high" + high); var nextValue = e.target.value + e.key; console.log(nextValue); if (e.which == 8) { // allow backspace return; } if (!/^(\d+)?([.]?\d{0,1})?$/.test(nextValue)) { e.preventDefault(); // non-number, don't allow } if (nextValue < low || nextValue > high) { e.preventDefault(); } } <!DOCTYPE html> <html> <form name="addtext"> SetPoint :<input id="setPoint" type="text" name="setPoint" onkeydown="myFunction(event,3, 5)" /><br /> </form>O bien, podría usar una entrada hecha para esto. No requiere javascript.
<input id="range" value="1" type="range" step="0.1" min="0.1" max="5.0">