porfa una consulta

nando
29 de Septiembre del 2005
tengo el sgte problema este script funciona bien es para ver
si el contenido es solonumero pero si ingreso dos veces lo mismo me
deja pasar normal si otar el mensaje
si alguien sabe lo que pasa ayudenme porfa
function valnumber(name)
{ var ok = "yes";
var temp;
var valid = "0123456789";
var field = document.all(name);

for (var i=0; i<field.value.length; i++)
{ temp = "" + field.value.substring(i, i+1);

if (valid.indexOf(temp) == "-1") ok = "no";

}


if (ok == "no")
{ alert("El campo solo debe contener números!");
field.value="";
field.focus();
field.select();
}



}
y lo llamos asi
<input name="txtPuesto22" type="text"id="txtPuesto222" maxlength="2" width="50%" value ="" onChange="valnumber('txtPuesto22')"></th>

dtino1
29 de Septiembre del 2005
No entiendo bien porque cuando lo introduces dos veces falla. Prueba a inicializar temp a ver si asi funciona:temp='';
A ver si asi funciona
Un saludo,Dani

Davidbf
29 de Septiembre del 2005
Yo diría que es porque el script se ejecuta con la condición onChange, por lo que si das dos con el mismo número, el script no se ejecutara.

nando
29 de Septiembre del 2005
gracias por la ayuda pero me pueden decir como lo tengo que llamar.gracias

NuTrAj
29 de Septiembre del 2005
Otra cosa que me olvidaba, al final de tu función, si es que la condicion no se cumple (o sea en el if(ok=="no")) tienes que retornar false:
return (false);
antes de salir del if, esto para que no permita que el action se haga efectivo.
Saludos, Raul

NuTrAj
29 de Septiembre del 2005
Nando, puedes usar la opcion:
onsubmit="return valnumber(txtPuesto22)"
en lugar de onChange, esta opcion verificará el formulario cada vez que se quiera ejecutar el form action, pero te aconsejo que la ubiques al lado de tu form asi:
<form name="form1" method="post" action="paginaDestino.php" onsubmit="return valnumber(txtPuesto22)">

No se si eso solucionará tu problema, pues no entiendo si el problema es que tu funcion solo verifica el campo la primera vez y las otras veces ya no lo hace, si es asi este cambio que te digo te puede solucionar el problema.
Suerte y saludos, Raul

nando
29 de Septiembre del 2005
ya intente lo que me dijeron mas arriba y se los agradescor pero no funciono esta vez no me mando ni un mensaje y me ejo ingresar yo quiero que verifique el campo hasta que este bien ingresado los datos