この人頭いいなと思ったエピソード

以下のプログラムでobjのlengthが「undefined」となる原因がわからない
<script language="JavaScript"><!--
function Check() {alert("スタート");
var obj = document.frm.elements['check'];
var i,j =0;alert("length="+ obj.length);
for (i = 0; i < obj.length ; i++ ) {
if ( obj[i].checked == true ) {j++;}
}
alert( 'チェックボックスの数='+ i);
alert( 'チェックした数='+ j);
}
//--></script>
<form name="frm" method="POST"><input type="checkbox" name="check" value="1"></form>
<a href="javascript:Check();">チェック</a>

formの中を以下のように変更すると正しく表示される
<form name="frm" method="POST"><input type="checkbox" name="check" value="1"><input type="checkbox" name="check" value="2"></form>
どなたか、ご教授くださいませ。

A 回答 (2件)

これでどうでしょう。



<script language="JavaScript"><!--
function Check() {alert("スタート");
var i,j=0,len =0;
len= document.frm.elements.length;
alert("length="+len);
for (i = 0; i < len; i++ ) {
if ( document.frm.elements[i].checked == true ) {j++;}
}
alert( 'チェックボックスの数='+ i);
alert( 'チェックした数='+ j);
}
//--></script>

ただ複数のinput要素がfrm内に混在する場合はこの方法は使えません。
    • good
    • 0

1個の場合は、コレクションでなくて単なるプロパティだから。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!