Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/05/2011, 06:56
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: Prolblemas Javascript con firefox

Tendrias que repasar el concepto name y el id, creo que los estas usando como si fueran lo mismo.

Un id tiene que ser único mientras que los name no, de ahi la diferencia entre

getElementsByName

getElementById

La condición del while la hago con el length>0 por que

getElementsByName

retorna un object aun que no exista ningun elemento con el nombre pedido... por lo tanto no sirve para evaluar si existe o no... (en cambio getElementById retorna null)


Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script language="JavaScript" type="text/JavaScript">
  5. function validarDades() {
  6.     var i=1;
  7.     var j;
  8.     var contador=0;
  9.     var respostes="";
  10.     var pregunta=document.getElementsByName("but"+i);
  11.     while (pregunta.length>0){
  12.         var xcontrol=false;
  13.         for (j = 0; j < pregunta.length; j++){
  14.             if (pregunta[j].checked){
  15.                 respostes = respostes + "," + pregunta[j].value;
  16.                 xcontrol=true;
  17.             }
  18.         }
  19.         if (xcontrol==false) contador++;
  20.         i++;
  21.         pregunta=document.getElementsByName("but"+i);
  22.     }
  23.     if (contador==0){
  24.         if (confirm("Segur que vol enviar les respostes, ja no podrà fer més aquest qüestionari.")){
  25.             document.dades.action="ConcursBiblicWeb_insertarRespostesAmic.asp?respostes="+respostes;
  26.             document.dades.submit();
  27.             //veureBarra();//Comento la funci&#243; ja que no la tinc !!!!!!!!!!!!!
  28.         }
  29.  
  30.     }else{
  31.         alert("Et falten "+contador+" preguntes per contestar");
  32.     }
  33. }
  34.  
  35.  
  36. </head>
  37.  
  38. <form action="" method="get" name="dades">
  39. P1<input name="but1" type="radio" id="but11" value="11">
  40. <input name="but1" type="radio" id="but12" value="12"><br>
  41.  
  42. P2<input name="but2" type="radio" id="but21" value="21">
  43. <input name="but2" type="radio" id="but22" value="22"><br>
  44.  
  45. P3<input name="but3" type="radio" id="but31" value="31">
  46. <input name="but3" type="radio" id="but32" value="32"><br>
  47. <input name="botEnviar" type="button" onClick="validarDades()" value="Enviar les respostes">
  48. </form>
  49. </body>
  50. </html>

Així funciona amb els dos navegadors.... sort.

Recuerda que el hecho de que una cosa funcione en IE no quiere decir que este bien hecha
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/05/2011 a las 12:47