Il seguente codice :
codice:
<html>
<head>
<script language="javascript" type="text/javascript">
function verificaCampi(aForm) {
for(i=1;i<=3;i++) {
var valoreTB = document.getElementById("datariga"+i).value;
var nameTB = document.getElementById("datariga"+i).name;
var selezRB1 = document.getElementById("scelta100riga"+i).checked;
var nameRB1 = document.getElementById("scelta100riga"+i).name;
var selezRB2 = document.getElementById("scelta50riga"+i).checked;
if ((valoreTB == "") && (selezRB1) && (!selezRB2)) {
alert("Riga "+i+": Se selezionato 100 o 50, allora bisogna selezionare anche il campo testuale");
aForm.nameTB.focus();
return false;
} else {
if ((valoreTB == "") && (!selezRB1) && (selezRB2)) {
alert("Riga "+i+": Se selezionato 100 o 50, allora bisogna selezionare anche il campo testuale");
aForm.nameRB1[0].focus();
return false;
} else {
if ((valoreTB != "") && (!selezRB1) && (!selezRB2)) {
alert("Riga "+i+": Se selezionato il campo testuale, allora bisogna selezionare anche uno tra 100 o 50");
aForm.nameRB1[0].focus();
return false;
} else {
if ((valoreTB == "") && (!selezRB1) && (!selezRB2)) {
alert("Riga "+i+": Occorre valorizzare uno tra campo testuale, 100 o 50");
aForm.nameTB.focus();
return false;
}
}
}
}
}
alert("Tutto OK!!!");
}
</script>
</head>
<body>
<form name="prova" action="" method="post" onSubmit="return verificaCampi(document.prova);">
<input type="text" value="" name="dataInizio1" id="datariga1">
<input type="radio" value="100" name="scelta1" id="scelta100riga1">100
<input type="radio" value="50" name="scelta1" id="scelta50riga1">50
<input type="text" value="" name="dataInizio2" id="datariga2">
<input type="radio" value="100" name="scelta2" id="scelta100riga2">100
<input type="radio" value="50" name="scelta2" id="scelta50riga2">50
<input type="text" value="" name="dataInizio3" id="datariga3">
<input type="radio" value="100" name="scelta3" id="scelta100riga3">100
<input type="radio" value="50" name="scelta3" id="scelta50riga3">50
<input type="submit" value="conferma" name="conferma">
</form>
</body>
</html>
propone 3 righe con rispettivamente un campo testo e due radiobutton mutualmente esclusivi.
Il mio scopo è quello di rendere obbligatoria la valorizzazione delle informazioni, per ciascuna riga.
Il problema è che i controlli sembrano funzionare tutti correttamente, ma dopo gli alert (a seconda del controllo che scatta), non viene eseguito il focus(); ovvero il cursore non si posiziona nel campo della riga su cui è richiesta la valorizzazione.
Cosa sbaglio, perchè ciò non avviene?
Grazie anticipatamente.