Validar entrada del lado del cliente

nica
21 de Agosto del 2003
hola a todos ... buen dia..

Tengo el siguiente problema... necesito validar al enviar los datos lo siguiente:

1. Tengo un formulario donde tengo varios campos entre ellos dos variables (valor) y (tcentro) que es un combo.
2. El usuario pone valor = 300, y tcentro(estatal).....
si es verdadero que se envien los datos, pero si el pone valor=300, y tcentro(privado) que me envie un mensaje que el valor no corresponde al tipo de centro elegido.

Ahora el otro caso.. es
Si el usuario pone valor = 400, y tcentro(privado).....
si es verdadero que se envien los datos, pero si el pone valor=400, y tcentro(estatal) que me envie un mensaje que el valor no corresponde al tipo de centro elegido.

Ahora yo trate hacerlo de la siguiente forma:

function pago()
{

var valor="";
var tipo="";

valor=document.FrontPage_Form1.valor.value;
tipo=document.FrontPage_Form1.tcentro.options[document.FrontPage_Form1.tcentro.selectedIndex].value;

if(valor!="300" && tipo!="ESTATAL")
{
alert("El colegio estatal debe pagar el arancel de C$300 cordobas netos");
document.FrontPage_Form1.tcentro.select();
document.FrontPage_Form1.tcentro.focus();
return false;


if(valor!=400 && tipo!="PRIVADO")
{
alert("El colegio privado debe pagar el arancel de C$400 cordobas netos");
document.FrontPage_Form1.tcentro.select();
document.FrontPage_Form1.tcentro.focus();
return false;


}
}
return(true);
}//Fin de la función pago

Espero me puedan ayudar....les doy las gracias anticipadas.

saludes ...Marco

anonimo
21 de Agosto del 2003
no anides los dos bucles 'if'

if(valor!="300" && tipo!="ESTATAL")
{
........
}
else if (valor!=400 && tipo!="PRIVADO")
{
}
else
{
}

Espero te sirva

Juan
21 de Agosto del 2003
Si no he entendido mal el usuario sólo puede elegir dos
opciones "Estatal" o "Privado", y según la opción elegida
debe rellenar un cuadro de texto con 300 o 400.

Si es así lo mejor que puedes hacer es escribir el nº
automáticamente cuando se elige la opción e imposibilitar
que el usuario pueda cambiar dicho número.

Te pongo un código para que veas a lo que me refiero,
he sustituido el select por dos input de tipo "radio", ya
que además de ser más rápido y claro para el usuario,
también me resultaba más fácil de programar.

<html>
<head>
<script language="javascript">
function cambiaSeleccion(){
switch(event.srcElement.value){
case "estatal":
formulario.visorArancel.value = "300";
formulario.valor.value = "300";
break;
case "privado":
formulario.visorArancel.value = "400";
formulario.valor.value = "400";
break;
}
}
</script>
</head>
<body>
<form name="formulario">
Centro:
<input type="radio" name="tvalue" value="estatal" checked onclick="cambiaSeleccion();">Estatal
<input type="radio" name="tvalue" value="privado" onclick="cambiaSeleccion();">Privado<br>
arancel: <input type="text" name="visorArancel" value="300" disabled>
<input type="hidden" name="valor" value="300">
</form>
</body>
</html>

nica
21 de Agosto del 2003
Buen dia...

Les agradezco a los dos se hayan tomado la molestia de responder a mi pregunta..

Juan tu idea de hacerlo con radio me parece bien, pero ademas del tipo de colegio(tcentro) hay un campo donde alojamos los nombres de los centros y al final debemos de revisar si realmente el estudiante corresponde al tipo de centro elegido(revisar uno a uno).

Ademas esto es para detectar a aquellos estudiantes mal intecionados que quieran pagar menos...ahora por otra parte cuando ellos, quieran realizar su examen de admision tendran que presentar el arancel y ya para ese momento ya tenemos el listado de estudiantes por tu tipo de centro..

Por eso estaba intentando hacerlo que me escriba primero el valor del arancel y mas abajo el tipo de centro... y dependiendo de eso que lo deje pasar o no.

PD: Este formulario es para prematricula online..

Saludes y muchas gracias por sus respuestas

Juan
21 de Agosto del 2003
Pues no me parece ético examinar la honradez de los estudiantes
dándoles la posibilidad de especificar ellos mismos el arancel,
francamente me parece que la mal intencionada eres tú, y de haberlo sabido no habria contestado.

nica
21 de Agosto del 2003
Desgracidamente el mundo se mueve por dinero y la educacion tiene un costo en la vida.

Ademas no soy yo el que quiere las cosas de esta manera... si no la institucion para la cual trabajo.

Pero bien, en este mundo la diversidad de opiniones es producto de la democracia..

Muchas gracias.. Juan
disculpa si heri tu sensibilidad ...