PDA

View Full Version : [JavaScript] Problema con checkbox


GiulioCesare
19-10-2006, 11:08
Salve ragazzi, ho un problema molto strano con il javascript, ho una checkbox che devo controllare tramite una funzione, però capita che quando è presente solo una checkbox, la proprieta checked nella posizione iesima, segnala l'errore "document.form.check[0] has no properties", anche se la checkbox ha il segno di spunta, invece la lunghezza della checkbox viene segnalata come indefinita, anche se effettivamente ne è presente una, questo problema si verifica sia su explorer che mozilla. Qualcuno saprebbe aiutarmi, per riuscire a controllare se una checkbox ha il segno di spunta, anche nel caso particolare che è presente una soltanto?
Posto comunque qui sotto il mio codice per far capire meglio il mio problema


<script language="JavaScript">
function control()
{
alert(document.form.check[0].checked);
alert(document.form.check.length);

}
</script>
<html>
<body>
<form name="form" action="prova.jsp">
<table border="1" width="200" height="200">
<tr>
<td>
<input type="checkbox" name="check" id="check" value="1">
<input type="button" name="bottone" onClick="control();">
</td>
</tr>
</table>
</form>
</body>
</html>

andbin
19-10-2006, 11:33
Salve ragazzi, ho un problema molto strano con il javascript, ho una checkbox che devo controllare tramite una funzione, però capita che quando è presente solo una checkbox, la proprieta checked nella posizione iesima, segnala l'errore "document.form.check[0] has no properties", anche se la checkbox ha il segno di spunta, invece la lunghezza della checkbox viene segnalata come indefinita, anche se effettivamente ne è presente una, questo problema si verifica sia su explorer che mozilla. Qualcuno saprebbe aiutarmi, per riuscire a controllare se una checkbox ha il segno di spunta, anche nel caso particolare che è presente una soltanto?
Posto comunque qui sotto il mio codice per far capire meglio il mio problemaLa questione è molto semplice:

Se hai 2 o più checkbox con lo stesso nome, es:
<input type="checkbox" name="check" id="check" value="1">
<input type="checkbox" name="check" id="check" value="2">
...

allora document.nomeform.check è un array (quindi puoi usare document.nomeform.check[0], document.nomeform.check[1], ecc...)

Se invece ne hai 1 solo di checkbox, document.nomeform.check non è di certo un array e quindi non ha una proprietà 'length' e non puoi usare nemmeno [n].

Questo vale, in generale, anche con gli altri tipi di input.