Hola carlunchos JavierB
Si necesitas desabilitar todos los grupos de check dependiende del primer grupo, el script que te envio funciona, no importa el número de grupos que haiga que comprobar, solo tienes que asignarle a los grupos obligatorios un nombre compuesto primero por letras y numeros al final.
Para que entiendas el funcionamiento del script te pongo este
enlace donde puedes ver mas claramente como funciona y puedas depuralo mejor y adaptarlo a tus necesidades.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script>
// El nombre de los radios obligatorio debe tener este formato letras y despues numeros
var msk_fo = /^\w+\d/i
var check_no = false
var check_yes = true
function send_form(current_form){
var field_focus
var radio_group = ""
var ok_form = 0
for(var ctr = 0 ; ctr < current_form.length; ctr++){
if(current_form[ctr].value == "1.2" && current_form[ctr].checked){
check_no = true
}
if(current_form[ctr].value == "1.1" && current_form[ctr].checked){
check_no = false
}
if(msk_fo.test(current_form[ctr].name)){
if(current_form[ctr].type == "radio" && current_form[ctr].name != radio_group){
if(check_radio(eval("current_form." + current_form[ctr].name))){
field_focus = ok_form == 0 ? current_form[ctr] :field_focus
ok_form++
}
radio_group = current_form[ctr].name
}
}
}
if(ok_form === 0 ){
current_form.submit()
}
else{
alert("Por favor, complete el formulario.\t \n" +
(ok_form > 1 ? "Quedan por marcar "+ok_form+"." : "Solo queda por marcar "+ok_form+"." ))
field_focus.focus()
}
}
function disabled_no(current_form){
radio_group = ""
for(var ctr = 0; ctr < current_form.length;ctr++){
if(msk_fo.test(current_form[ctr].name)){
if(current_form[ctr].type == "radio" && current_form[ctr].name != radio_group){
if(check_radio(eval("current_form." + current_form[ctr].name))){continue }
radio_group = current_form[ctr].name
}
}
}
}
function check_radio(radio_group){
if(check_no){
for(var ctr = 0 ; ctr < radio_group.length; ctr++){
if(radio_group[ctr].name != "rd1"){
if(!check_yes){
radio_group[ctr].checked= false
radio_group[ctr].disabled = true
}
else{
radio_group[ctr].disabled = false
}
}
}
return false
}
else{
for(var ctr = 0 ; ctr < radio_group.length; ctr++){
if(radio_group[ctr].checked ){
return false
}
}
return true
}
}
//-->
</script>
</head>
<body>
<table><form name="form1">
<td align=center height=30>Si <input type=radio name="rd1" value="1.1" onclick="check_yes=true;disabled_no(this.form) "> No <input type=radio name="rd1" value="1.2" onclick="check_yes=false;check_no=true; disabled_no(this.form) " ></td>
<tr>
<td align="center" bgcolor="#FFFFCC"><p><b>2:.</b> Direccion</p></td>
</tr>
<tr>
<td align=center colspan=2 height=30>Ninguna <input type=radio name="rd2" value="2.1"> Difusa<input type=radio name="rd2" value="2.2"> Algo<input type=radio name="rd2" value="2.3"> Poca<input type=radio name="rd2" value="2.4"></td>
</tr>
<tr>
<td height=30 colspan=2 align=center bgcolor="#FFFFCC"><p><b>3:.</b> Se debe permitir</p></td>
</tr>
<td align=center colspan=2 height=30>Capital <input type=radio name="rd3" value="3.1"> Provincias<input type=radio name="rd3" value="3.2"> Varios<input type=radio name="rd3" value="3.3"></td>
</tr>
</table>
<table border="0" width="80%" bordercolor="#9999FF" cellpadding="2" cellspacing="2">
<tr>
<td width="200" align=center> <%=pagetitle%> </td>
<td align=right height=30><input type=button name=envio value="Siguiente" Onclick="send_form(this.form)"></td>
</tr>
</table>
</form>
</body>
</html>
Espero que te sirva.
Saludos