Controllo campi radio

  • Creatore Discussione Creatore Discussione bartjsp
  • Data di inizio Data di inizio

bartjsp

Nuovo Utente
21 Feb 2008
4
0
0
Avevo bisogno di un metodo che facesse la seguente cosa, dopo avere creato l'elenco dei record, dovevo effettuare un controllo se almeno un campo radio era selezionato, lo script è il seguente:
HTML:
function valButton(btn)
{
var cnt = -1;
for (var i = btn.length - 1; i > -1; i--) {
if (btn[i].checked)
{
cnt = i;
i = -1;
}
}
if (cnt > -1)
return btn[cnt].value;
else
return null;
}
function valForm(form)
{
var btn = valButton(form.idscheda);
if (btn == null)
alert('Nessuna scheda selezionata.');
else
document.location.href('index.php?pageid=dati_scheda&idscheda=' + btn);
}

<form action="#" name="visualizza_scheda">
<input type="radio" name="idscheda" value="1"/>
<input type="button" name="visualizza" onclick="valForm(visualizza_scheda); return false;">
</form>

putroppo presenta un difetto che non riesco a risolvere, se nell'elenco c'è un solo campo radio mi viene restituito l'alert "Nessuna scheda selezionata". :confused:

Dov'è l'errore secondo voi.
 
Cosi ad occhio è difficilissimo capirlo... io in genere faccio cosi...

Su ogni radio attivo all'onclick una funzione Javascript che incrementa un contatore numerico che parte da zero.

Il controllo verifica che se il "contatore" è 0, vuol dire che nessun campo è selezionato, altrimenti va bene.

Un esempio:

<script type="text/javascript">
var contatore = 0;
function Controllo()
{
if (contatore == 0)
{
alert("Seleziona un'opzione");
}
else
{
alert("OK");
}
}
</script>

<form name="modulo">
<input type="radio" name="sesso" value="U" onclick="contatore++"> Uomo
<input type="radio" name="sesso" value="D" onclick="contatore++"> Donna
<br><br>
<input type="button" name="ok" value="OK" onclick="Controllo()">
</form>

Non l'ho testato, ma ad occhio dovrebbe funzionare sia con IE che con FF.

Fammi sapere!

Inn alternativa a questa soluzione che, se funziona è la scoperta del secolo :D, ricordo che tempo fa scrissi un articolo proprio sull'argomento.

Ecco il link:

https://www.mrw.it/tutorial/js/tutorial512.htm

Ciao!
 
Ultima modifica:

Discussioni simili