Foros del Web » Programando para Internet » Javascript »

ayuda con alert

Estas en el tema de ayuda con alert en el foro de Javascript en Foros del Web. buenas noches me gustaria saber si alguien me puede colaborar tratando de encontrar el porque cuando marco la respuesta correcta se me acttiva tambien el ...
  #1 (permalink)  
Antiguo 25/04/2009, 19:06
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 1
ayuda con alert

buenas noches me gustaria saber si alguien me puede colaborar tratando de encontrar el porque cuando marco la respuesta correcta se me acttiva tambien el alert que muestra el error

les agradesco por q ya no se como arreglarlo


Código PHP:
<script>
function 
averiguarNota() {
var 
resultado=0;
var 
nivel=" ";

for (
i=0;i<document.examen.elements.length;i++)
{
if ((
document.examen.elements[i].type=="radio") &&
(
document.examen.elements[i].value=="bien") &&
(
document.examen.elements[i].checked))
{
resultado++;
alert("Has respondido correctamente un total de: "+resultado" preguntas.");
}
}
for (
i=0;i<document.examen.elements.length;i++)
{
if ((
document.examen.elements[i].type=="radio") &&
(
document.examen.elements[i].value=="mal"))

document.examen.elements[i].style.background ="#000000";

}






</script>
<form  name="examen" onSubmit="">
<p> 1.Cuanto es 1+1 <br><br>
&nbsp;&nbsp; &nbsp;
<input type="radio"  onClick="averiguarNota()" on name="respuesta1" value="mal">
3</p>
<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">&nbsp;&nbsp; 
&nbsp; 
<input type="radio" name="respuesta1" onClick="averiguarNota()" value="bien">
2</p>
<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp; 
<input type="radio" name="respuesta1" onClick="averiguarNota()"value="mal">
  -2<br>
  &nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta1" onClick="averiguarNota()"value="mal">
  7<br>
</p>

<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">20. 
  Su sueldo en el acc es¡¡<br>
  <br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta20" onClick="averiguarNota()"value="bien">
  &nbsp;chichiguas</p>
<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta20" onClick="averiguarNota()" value="mal">
  &nbsp;Apropiado</p>

<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta20" onClick="averiguarNota()" value="mal">
  &nbsp;me pagan muy poquito</p>
<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0"> 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta20" onClick="averiguarNota()"value="mal">
  &nbsp;me pagan demasiado &nbsp;</p>

</form>
<p> 
  #2 (permalink)  
Antiguo 25/04/2009, 19:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: ayuda con alert

Es que esa no es la forma correcta de obtener el value del radio seleccionado, más bien, debes usar un bucle for para recorrer el grupo de radio y ver cuál está marcado (checked)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 25/04/2009, 19:13
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ayuda con alert

perdoname pero no te entendi lo que me quiciste decir?

:$
  #4 (permalink)  
Antiguo 25/04/2009, 19:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: ayuda con alert

Aquí:
Código Javascript:
Ver original
  1. if ((document.examen.elements[i].type=="radio") &&
  2. (document.examen.elements[i].value=="mal"))
Es lógico que al encontrarse con un input type radio que tenga el value mal, la comparación sea verdadera, esté o no marcado ese radio.

Lo que podrías hacer es añadir una condición para saber si document.examen.elements[i].checked es también verdadero.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 25/04/2009, 19:21
upm
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayuda con alert

Hola pipe,

Me parece, a primera vista, que el error podría estar en que estás haciendo el llamado a la función
Código PHP:
AveriguarNota() 
en el método
Código PHP:
onClick 
de cada radiobutton, lo cual está mal.

Lo correcto sería, a mi parecer, ejecutar la función al final cuando ya hayas seleccionado todos los radio buttons.
Quizás deberías colocar un botón llamado [Averiguar Nota] y al hacer click sobre él, llamar a la función.

Quizás también podrías probar hacer el llamado a la función en el método "onSubmit" del formulario, retornando "false" cuando hay errores o "true" si todo está ok ...

Bueno, son sólo algunas ideas, espero que te sirvan.

Saludos
  #6 (permalink)  
Antiguo 25/04/2009, 19:28
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ayuda con alert

mira le puse la sentencia como me lo sugeriste pero no me da
y no hayo x donde ya me esta volviendo loco

Código PHP:
for (i=0;i<document.examen.elements.length;i++)
{
if ((
document.examen.elements[i].type=="radio") &&
(
document.examen.elements[i].value=="mal")&&(document.examen.elements[i].checked))

document.examen.elements[i].style.background ="#000000";
alert("Has respondido incorrectamente un total de: "+resultado" preguntas.");

  #7 (permalink)  
Antiguo 25/04/2009, 19:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: ayuda con alert

Te faltan las llaves ({ }) de cierre y apertura del if, ya que de lo contrario, sólo la primera línea siguiente depende de la evaluación.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 25/04/2009, 19:42
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ayuda con alert

mira le pongo las llaves y me tira un error de sintaxis


Código PHP:
for (i=0;i<document.examen.elements.length;i++)
{
    if ((
document.examen.elements[i].type=="radio") &&(document.examen.elements[i].value=="bien") &&(document.examen.elements[i].checked))
        {
            
resultado++;
            
alert("Has respondido correctamente un total de: "+resultado" preguntas.");
        }
}

for (
i=0;i<document.examen.elements.length;i++)
{
if 
    ((
document.examen.elements[i].type=="radio") &&
    (
document.examen.elements[i].value=="mal")&&(document.examen.elements[i].checked))

    
document.examen.elements[i].style.background ="#000000";
    
alert("Has respondido incorrectamente un total de: "+resultado" preguntas.");
    

  #9 (permalink)  
Antiguo 25/04/2009, 19:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: ayuda con alert

¿Dónde marca el error? Además, el segundo if tampoco tiene llaves de cierre y apertura por lo que el alert(...) está fuera del bloque condicional.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 25/04/2009, 19:57
upm
 
Fecha de Ingreso: abril-2009
Mensajes: 10
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayuda con alert

Te estás enredando todo .... yo sugiero que vuelvas al codigo inicial y revises mi sugerencia anterior.

Saludos.
  #11 (permalink)  
Antiguo 25/04/2009, 20:00
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ayuda con alert

si tenias razon con lo de las llaves y despues de un cafe bien cargado me di cuenta del error

pero mira cuando revizo las preguntas por primera vez los alerts se disparan correctamente pero cuando me paso a la pregunta dos ya me manda tambien el alert del incorrecto. es como si estubiera leyendo el radiobutton que esta marcado de la pregunta anterior
Código PHP:
<script>
function 
averiguarNota() {
var 
resultado=0;
var 
nivel=" ";

for (
i=0;i<document.examen.elements.length;i++)
{
    if ((
document.examen.elements[i].type=="radio") &&(document.examen.elements[i].value=="bien") &&(document.examen.elements[i].checked))
        {
            
resultado++;
            
alert("Has respondido correctamente un total de: "+resultado" preguntas.");
        }
}

for (
i=0;i<document.examen.elements.length;i++)
    {
    if ((
document.examen.elements[i].type=="radio") &&(document.examen.elements[i].value=="mal")&&(document.examen.elements[i].checked))
        {
                
document.examen.elements[i].style.background ="#000000";
                
alert("Has respondido incorrectamente .");
        }    
    }




</script>
<form  name="examen" onSubmit="">
<p> 1.Cuanto es 1+1 <br><br>
&nbsp;&nbsp; &nbsp;
<input type="radio"  onClick="averiguarNota()" on name="respuesta1" value="mal">
3</p>
<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">&nbsp;&nbsp; 
&nbsp; 
<input type="radio" name="respuesta1" onClick="averiguarNota()" value="bien">
2</p>
<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp; 
<input type="radio" name="respuesta1" onClick="averiguarNota()"value="mal">
  -2<br>
  &nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta1" onClick="averiguarNota()"value="mal">
  7<br>
</p>

<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">20. 
  Su sueldo en el acc es¡¡<br>
  <br>
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta20" onClick="averiguarNota()"value="bien">
  &nbsp;chichiguas</p>
<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta20" onClick="averiguarNota()" value="mal">
  &nbsp;Apropiado</p>

<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta20" onClick="averiguarNota()" value="mal">
  &nbsp;me pagan muy poquito</p>
<p style="word-spacing: 0; margin-top: 0; margin-bottom: 0"> 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <input type="radio" name="respuesta20" onClick="averiguarNota()"value="mal">
  &nbsp;me pagan demasiado &nbsp;</p>

</form> 
  #12 (permalink)  
Antiguo 25/04/2009, 20:19
 
Fecha de Ingreso: julio-2008
Ubicación: Bogota
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: ayuda con alert

listo lo tengo era ponerle la condicion de true al cheked del radio button gracias david el grande me ayudaste formidablemente
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 07:21.