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
getElement
sByName
getElementById
La condición del while la hago con el length>0 por que
getElement
sByName
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<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript" type="text/JavaScript"> function validarDades() {
var i=1;
var j;
var contador=0;
var respostes="";
var pregunta=document.getElementsByName("but"+i);
while (pregunta.length>0){
var xcontrol=false;
for (j = 0; j < pregunta.length; j++){
if (pregunta[j].checked){
respostes = respostes + "," + pregunta[j].value;
xcontrol=true;
}
}
if (xcontrol==false) contador++;
i++;
pregunta=document.getElementsByName("but"+i);
}
if (contador==0){
if (confirm("Segur que vol enviar les respostes, ja no podrà fer més aquest qüestionari.")){
document.dades.action="ConcursBiblicWeb_insertarRespostesAmic.asp?respostes="+respostes;
document.dades.submit();
//veureBarra();//Comento la funció ja que no la tinc !!!!!!!!!!!!!
}
}else{
alert("Et falten "+contador+" preguntes per contestar");
}
}
<form action="" method="get" name="dades"> P1
<input name="but1" type="radio" id="but11" value="11"><input name="but1" type="radio" id="but12" value="12"><br>
P2
<input name="but2" type="radio" id="but21" value="21"><input name="but2" type="radio" id="but22" value="22"><br>
P3
<input name="but3" type="radio" id="but31" value="31"><input name="but3" type="radio" id="but32" value="32"><br> <input name="botEnviar" type="button" onClick="validarDades()" value="Enviar les respostes">
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