Foros del Web » Programando para Internet » Javascript »

duda con validacion

Estas en el tema de duda con validacion en el foro de Javascript en Foros del Web. tengo una validacion que no se que pasa pero ya no me quiere funcionar si alguien me podria asesorar que es lo que pasa que ...
  #1 (permalink)  
Antiguo 25/06/2010, 08:06
Avatar de andreshenao  
Fecha de Ingreso: enero-2009
Ubicación: Medellìn
Mensajes: 417
Antigüedad: 15 años, 3 meses
Puntos: 7
duda con validacion

tengo una validacion que no se que pasa pero ya no me quiere funcionar si alguien me podria asesorar que es lo que pasa que no logro encontrar el error.

Mil gracias

<HTML>
<HEAD>
<TITLE>
Solucionado validar radio button
</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function validarBotonRadio() {
var s = 0;
with (document.formulario){
for ( var i = 0; i < suma.length; i++ ) {
if ( suma[1].checked ) {
s= s + 1;
//primera pregunta
break;
}
}
for ( var i = 0; i < suma1.length; i++ ) {
if ( suma1[2].checked ) {
s= s + 1; //segunda pregunta
// window.alert("de 2 preguntas saco buenas: \n" + s);
break;
}
}
for ( var i = 0; i < suma2.length; i++ ) {
if ( suma2[2].checked ) {
s= s + 1; //tercera pregunta
//window.alert("de 2 preguntas saco buenas: \n" + s);
break;
}
}
for ( var i = 0; i < suma3.length; i++ ) {
if ( suma3[3].checked ) {
s= s + 1; //cuarta pregunta
//window.alert("de 2 preguntas saco buenas: \n" + s);
break;
}
}
for ( var i = 0; i < suma4.length; i++ ) {
if ( suma4[4].checked ) {
s= s + 1; //quinta pregunta
window.alert("de 5 preguntas saco buenas: \n" + s);
break;
}
}

if ( s >= 1 ){
window.alert("Perdio el examen" ) ;
}
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name="formulario">
<B>Cuanto es 3+2:</B><br>
<INPUT TYPE="radio" NAME="suma" VALUE="uno">Tres
<INPUT TYPE="radio" NAME="suma" VALUE="dos" >Cinco <!--respuesta buena -->
<INPUT TYPE="radio" NAME="suma" VALUE="uno">Tres
<INPUT TYPE="radio" NAME="suma" VALUE="dos" >Cinco
<INPUT TYPE="radio" NAME="suma" VALUE="tres" >Ocho<br>
<BR>
<B>cuanto es 2+2=</B><br>
<INPUT TYPE="radio" NAME="suma1" VALUE="1">dos
<INPUT TYPE="radio" NAME="suma1" VALUE="2" >tres
<INPUT TYPE="radio" NAME="suma1" VALUE="3">Tres<!--respuesta buena -->
<INPUT TYPE="radio" NAME="suma1" VALUE="4" >Cinco
<INPUT TYPE="radio" NAME="suma1" VALUE="5" >Cuatro<br>
<BR>
<B>pregunta</B><br>
<INPUT TYPE="radio" NAME="suma2" VALUE="6">dos
<INPUT TYPE="radio" NAME="suma2" VALUE="7" >tres
<INPUT TYPE="radio" NAME="suma2" VALUE="8">Tres<!--respuesta buena -->
<INPUT TYPE="radio" NAME="suma2" VALUE="9" >Cinco
<INPUT TYPE="radio" NAME="suma2" VALUE="10" >Cuatro<br>
<BR>
<B>pregunta=</B><br>
<INPUT TYPE="radio" NAME="suma3" VALUE="11">dos
<INPUT TYPE="radio" NAME="suma3" VALUE="12" >tres
<INPUT TYPE="radio" NAME="suma3" VALUE="13">Tres
<INPUT TYPE="radio" NAME="suma3" VALUE="14" >Cinco<!--respuesta buena -->
<INPUT TYPE="radio" NAME="suma3" VALUE="15" >Cuatro<br>
<BR>
<B>pregunta =</B><br>
<INPUT TYPE="radio" NAME="suma4" VALUE="16">dos
<INPUT TYPE="radio" NAME="suma4" VALUE="17" >tres
<INPUT TYPE="radio" NAME="suma4" VALUE="18">Tres
<INPUT TYPE="radio" NAME="suma4" VALUE="19" >Cinco
<INPUT TYPE="radio" NAME="suma4" VALUE="20" >Cuatro<BR><!--respuesta buena -->
<BR>

<INPUT TYPE="button" NAME="enviar" VALUE="enviar" onClick="validarBotonRadio()">
<INPUT TYPE="reset" VALUE="Borrar">
</FORM>
</BODY>
</HTML>
__________________
-----------------
Hosting Medellin
Diseño web medellin
  #2 (permalink)  
Antiguo 25/06/2010, 08:37
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: duda con validacion

http://www.forosdelweb.com/f13/como-...0/#post3457586
  #3 (permalink)  
Antiguo 25/06/2010, 09:08
Avatar de andreshenao  
Fecha de Ingreso: enero-2009
Ubicación: Medellìn
Mensajes: 417
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: duda con validacion

hola y mil gracias por la respuesta no se si miraste mi codigo pero es un poquito diferente al post que me colocaste, yo no estoy haciendo comparaciones ni sumando,
la suma maxima que hago es s=s+1;
este codigo me funcionaba con las dos preguntas pero le anexe las otras tres y dejo de funcionar.
quite los cambios realizados y tampoco me funciono eso fue lo que paso.
si me pueden asesorar en que esta el error les agradesco.
__________________
-----------------
Hosting Medellin
Diseño web medellin
  #4 (permalink)  
Antiguo 25/06/2010, 10:31
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: duda con validacion

No necesitas usar ningún bucle, simplemente averigua si la opción correcta está seleccionada y súmale 1. Además puedes acortar un poco más el código cambiando s = s + 1 por s += 1. Si sólo hay 5 preguntas no es mucho pero si hay más es un carácter por pregunta.

Saludos (:
  #5 (permalink)  
Antiguo 25/06/2010, 10:41
Avatar de andreshenao  
Fecha de Ingreso: enero-2009
Ubicación: Medellìn
Mensajes: 417
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: duda con validacion

Hola y gracias por la respuesta, bueno el s+=1; lo corregi pero la dificulta mayor no es eso, era que el codigo me funciona bien con dos preguntas solo le anexe tres mas y ya no funciona y no saca ningun error, solo no se ejecuta.

Gracias
__________________
-----------------
Hosting Medellin
Diseño web medellin
  #6 (permalink)  
Antiguo 25/06/2010, 10:46
Avatar de gersveo  
Fecha de Ingreso: julio-2008
Mensajes: 145
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: duda con validacion

lo que entendí del problema que estas teniendo es que cuando uno selecciona todas las respuestas correctas aparece un alert diciendo que todas las respuestas son correctas pero que luego dice que ¡¡¡no pasa el examen!!!
si es eso se resuelve cambiando el ">=" por "<="
Código Javascript:
Ver original
  1. if ( s <= 1 ){
  2.         window.alert("Perdio el examen" ) ;
  3.     }
Código HTML:
Ver original
  1. HTML>
  2. <HEAD>
  3. Solucionado validar radio button
  4. </TITLE>
  5. <SCRIPT LANGUAGE="JavaScript">
  6. function validarBotonRadio() {
  7. var s = 0;
  8. with (document.formulario){
  9.     for ( var i = 0; i < suma.length; i++ ) {
  10.         if ( suma[1].checked ) {
  11.             s= s + 1;
  12.             //primera pregunta
  13.             break;
  14.         }
  15.     }
  16.     for ( var i = 0; i < suma1.length; i++ ) {
  17.         if ( suma1[2].checked ) {
  18.             s= s + 1; //segunda pregunta
  19.             // window.alert("de 2 preguntas saco buenas: \n" + s);
  20.             break;
  21.         }
  22.     }
  23.     for ( var i = 0; i < suma2.length; i++ ) {
  24.         if ( suma2[2].checked ) {
  25.             s= s + 1; //tercera pregunta
  26.             //window.alert("de 2 preguntas saco buenas: \n" + s);
  27.             break;
  28.         }
  29.     }
  30.     for ( var i = 0; i < suma3.length; i++ ) {
  31.         if ( suma3[3].checked ) {
  32.             s= s + 1; //cuarta pregunta
  33.             //window.alert("de 2 preguntas saco buenas: \n" + s);
  34.             break;
  35.         }
  36.     }
  37.     for ( var i = 0; i < suma4.length; i++ ) {
  38.         if ( suma4[4].checked ) {
  39.             s= s + 1; //quinta pregunta
  40.             window.alert("de 5 preguntas saco buenas: \n" + s);
  41.             break;
  42.         }
  43.     }
  44.  
  45.     if ( s <= 1 ){
  46.         window.alert("Perdio el examen" ) ;
  47.     }
  48. }
  49. }
  50. </SCRIPT>
  51. </HEAD>
  52. <BODY>
  53. <FORM name="formulario">
  54. <B>Cuanto es 3+2:</B><br>
  55. <INPUT TYPE="radio" NAME="suma" VALUE="uno">Tres
  56. <INPUT TYPE="radio" NAME="suma" VALUE="dos" >Cinco <!--respuesta buena -->
  57. <INPUT TYPE="radio" NAME="suma" VALUE="uno">Tres
  58. <INPUT TYPE="radio" NAME="suma" VALUE="dos" >Cinco
  59. <INPUT TYPE="radio" NAME="suma" VALUE="tres" >Ocho<br>
  60. <BR>
  61. <B>cuanto es 2+1=</B><br>
  62. <INPUT TYPE="radio" NAME="suma1" VALUE="1">dos
  63. <INPUT TYPE="radio" NAME="suma1" VALUE="2" >tres
  64. <INPUT TYPE="radio" NAME="suma1" VALUE="3">Tres<!--respuesta buena -->
  65. <INPUT TYPE="radio" NAME="suma1" VALUE="4" >Cinco
  66. <INPUT TYPE="radio" NAME="suma1" VALUE="5" >Cuatro<br>
  67. <BR>
  68. <B>pregunta</B> correcta tercera opción<br>
  69. <INPUT TYPE="radio" NAME="suma2" VALUE="6">dos
  70. <INPUT TYPE="radio" NAME="suma2" VALUE="7" >tres
  71. <INPUT TYPE="radio" NAME="suma2" VALUE="8">Tres<!--respuesta buena -->
  72. <INPUT TYPE="radio" NAME="suma2" VALUE="9" >Cinco
  73. <INPUT TYPE="radio" NAME="suma2" VALUE="10" >Cuatro<br>
  74. <BR>
  75. <B>pregunta=</B> correcta cuarta opción<br>
  76. <INPUT TYPE="radio" NAME="suma3" VALUE="11">dos
  77. <INPUT TYPE="radio" NAME="suma3" VALUE="12" >tres
  78. <INPUT TYPE="radio" NAME="suma3" VALUE="13">Tres
  79. <INPUT TYPE="radio" NAME="suma3" VALUE="14" >Cinco<!--respuesta buena -->
  80. <INPUT TYPE="radio" NAME="suma3" VALUE="15" >Cuatro<br>
  81. <BR>
  82. <B>pregunta =</B> correcta 5ta opción<br>
  83. <INPUT TYPE="radio" NAME="suma4" VALUE="16">dos
  84. <INPUT TYPE="radio" NAME="suma4" VALUE="17" >tres
  85. <INPUT TYPE="radio" NAME="suma4" VALUE="18">Tres
  86. <INPUT TYPE="radio" NAME="suma4" VALUE="19" >Cinco
  87. <INPUT TYPE="radio" NAME="suma4" VALUE="20" >Cuatro<BR><!--respuesta buena -->
  88. <BR>
  89.  
  90. <INPUT TYPE="button" NAME="enviar" VALUE="enviar" onClick="validarBotonRadio()">
  91. <INPUT TYPE="reset" VALUE="Borrar">
  92. </FORM>
  93. </BODY>
  94. </HTML>
  #7 (permalink)  
Antiguo 25/06/2010, 10:51
Avatar de andreshenao  
Fecha de Ingreso: enero-2009
Ubicación: Medellìn
Mensajes: 417
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: duda con validacion

listo error y disculpen era algo sencillo.
if ( s <= 2 ){
window.alert("de 5 preguntas saco buenas: \n" + s)
window.alert("Perdio el examen" ) ;
}

Grass
__________________
-----------------
Hosting Medellin
Diseño web medellin
  #8 (permalink)  
Antiguo 25/06/2010, 16:56
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: duda con validacion

Sigo sin entender para qué usas el bucle, cuando no estás usando para nada el iterador. Ese código sobra.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:06.