user3504980 user3504980 - 4 months ago 7
Javascript Question

JavaScript Number Validation From 0 - 10

I need to check if a number is between 0 and 10 in JavaScript.

The Code:

<html>
<head>
<script>
function compruebacampo(evt,campotexto) {
//Validar la existencia del objeto event
evt = (evt) ? evt : event;

//Extraer el codigo del caracter de uno de los diferentes grupos de codigos
var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
((evt.which) ? evt.which : 0));

//Predefinir como valido
var respuesta = true;

//Validar si el codigo corresponde a
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
//Asignar FALSE a la respuesta si es de los NO aceptables
respuesta = false;
}

//Valida rango valido 1-10
if ((campotexto.value + String.fromCharCode(charCode))>10 ||(campotexto.value +
String.fromCharCode(charCode))<0) {
respuesta = false;
}

//Regresar la respuesta
return respuesta;
}
</script>

</head>
<body>
<input type="textbox" onkeypress="return compruebacampo(event,this)" >
</body>
</html>


I have this but it's only valid from 1-10. How can I include the '0' ONCE in the number validation?

Answer
function compruebacampo(evt, campotexto)
{
    var charCodeOfZero = 48;
    var numberJustEntered = evt.charCode - charCodeOfZero;
    var fullString = campotexto.value + "" + numberJustEntered;

    var matchesOne = false;
    for (var i = 0; i <= 10; i++) {
        if (fullString == ("" + i)) 
             matchesOne = true;
    }

    if (!matchesOne) return false;
}