Salve,
scusate se posto perché l'argomento è roba vecchia, ma prima di farlo ho passato un bel po' di tempo a cercare (per esempio qui) e a provare numerose combinazioni.
Ho un form con n bottoni radio:
codice:
<FORM NAME="actions_find" ACTION="action_view.php" METHOD="POST" onSubmit="return check_form();">
<INPUT TYPE="RADIO" NAME="action_id" VALUE="1">
<INPUT TYPE="RADIO" NAME="action_id" VALUE="2">
<INPUT TYPE="SUBMIT" VALUE="Visualizza">
</FORM>
in cui deve essere inviato il submit solo se almeno un bottone è selezionato. A tal proposito ho creato un semplicissimo controllo JS:
codice:
<SCRIPT Language="Javascript" TYPE="text/javascript">
<!--
function check_form() {
var count = 0;
for (i=0; i<=10; i++) { if (document.actions_find.action_id[i].checked == true) { count++; } }
if (count <= 0) { alert('Deve essere selezionata almeno un\'azione da visualizzare.');
return false; } else { return true; }
}
//-->
</SCRIPT>
che non lavora perché non blocca il submit.
Il JS debugger di Firefox dice:
document.actions_find.action_id[i] has no properties.
Ma non riesco a capire, perché quell'oggetto ce la dovrebbe proprio avere la proprietà checked...
E' come se non leggesse la variabile i all'interno del ciclo for.
Ho provato anche a mettere for (var i=0; i<=10; i++) ma non funziona ugualmente.
Ho provato anche a sostituire
codice:
document.actions_find.action_id[i].checked
con il più moderno
codice:
document.getElementByName('action_id')[i].checked
(senza essere sicuro della validità) ma senza risultati.
Scommetto che come sempre è una inezia che mi blocca il flusso di zeri e uno nel supercervellone (?) del PC.