チェックボックスのコントロール配列を使用して複数選択をキャプチャしています
次のコードは、2 つのチェックボックスを使用して適切に動作し、期待どおり に値2を返します(または、多くの場合)。
ただし、配列にチェックボックス項目が 1 つしかない場合、長さ0 (ゼロ)が返されます....なぜでしょうか? 長さ 1 を返すべきではありませんか?
これを Internet Explorer と Chrome で試しましたが、結果は同じでした。回避策として、コードを実行するときに常に 2 つ以上の項目があることを確認するために、配列に非表示の偽のチェックボックスを含める必要があります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<script language="javascript" type="text/javascript">
function categoryOnClick() {
var selectedRows = document.searchForm.elements['categorySelect[]'];
alert(selectedRows.length);
}
</script>
</head>
<body>
<form name="searchForm" action="">
<input type="checkbox" name="categorySelect[]" id="1" onclick="categoryOnClick();"/>
<input type="checkbox" name="categorySelect[]" id="2" onclick="categoryOnClick();"/>
</form>
</body>
</html>
0 (ゼロ) の長さを返すコード...
<form name="searchForm" action="">
<input type="checkbox" name="categorySelect[]" id="1" onclick="categoryOnClick();"/>
</form>