JavaScript - Fallo al comprobar campo numerico

 
Vista:

Fallo al comprobar campo numerico

Publicado por AND77 (1 intervención) el 22/03/2006 12:44:26
Buenas tardes,
tengo un problema con el siguiente codigo:

<script>

function validar_producto(){

var checkOK = "0123456789";
var checkStr = document.comprar_producto.cantidad.value;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
allNum += ch;
}
if (!allValid) {
alert("Escriba solo numeros en el campo Cantidad");
document.comprar_producto.cantidad.focus();
}
//valido el numero
if (document.comprar_producto.cantidad.value.length==0){
alert("Introduce una cantidad entre 1 y 99");
document.comprar_producto.cantidad.focus();
}

else { document.comprar_producto.submit(); }

}

</script>

<form name="comprar_producto" method="post" action="alacesta.asp">
...
<input name="cantidad" type="text" size="1" maxlength="2" value="1" class="boton3">
...
</form>

Si escribo texto en el campo cantidad..me sale el alert y no m deja continuar, el problema es cuando dejo el campo vacio, me sale el alert pero me manda a la pagina "alacesta.asp", no se que hacer para que se me pare.
Si alguien me puede ayudar le estare muy agradecido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Fallo al comprobar campo numerico

Publicado por Puli (218 intervenciones) el 23/03/2006 13:03:14
Estás realizando la segunda comprobación aunque el número sea incorrecto.

Podrías probar con la siguiente solución:
Solo realizará la segunda comprobación si la primera es correcta.

<script>

function validar_producto(){

var checkOK = "0123456789";
var checkStr = document.comprar_producto.cantidad.value;
var allValid = true;
var decPoints = 0;
var allNum = "";
var ok=true;

for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length) {
allValid = false;
break;
}
allNum += ch;
}
if (!allValid) {
alert("Escriba solo numeros en el campo Cantidad");
document.comprar_producto.cantidad.focus();
ok=false;
}

//valido el numero
if (ok) {
if (document.comprar_producto.cantidad.value.length==0){
alert("Introduce una cantidad entre 1 y 99");
document.comprar_producto.cantidad.focus();
} else { document.comprar_producto.submit(); }
}

}

</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar