2008/12/11

[javascript]checkboxの個数を取得

久しぶりにcheckboxの個数を調べる必要が発生したので、個数の取得方法を検証してみました。

基本的には、document.form_name.checkbox_name.lengthで取得できるのですが、問題は、チェックボックスが1個の場合

<form name="frm" >
<input type="checkbox" name="hoge" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
alert(document.frm.hoge.length);
}
</script>

この場合、「undefined」と返されてしまいました。

次は、下のように少し変えてみました。
<form name="frm" >
<input type="checkbox" name="hoge" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
//チェックボックスの個数が1個の時
if(document.frm.hoge.length == "undefined"){
alert("1個です");
}
}
</script>

この場合、何も起こりませんでした。
以上より、undefinedは文字列ではないことがわかったので、
<form name="frm" >
<input type="checkbox" name="hoge" value="1">
<input type="button" value="確認" onclick="lf_kakunin();">
</form>
<script type="text/javascript">
function lf_kakunin(){
//チェックボックスの個数が1個の時
if(document.frm.hoge.length == undefined){
alert("1個です");
}
}
</script>

と、「"」をはずすと、無事、alertの部分が表示されました。

今回は、checkboxだったんでけど、radioボタンの時は、どうなるのか次回、検証してみたいと思います。

あと、今日は、IEで動作確認したんだけど、firefoxの場合でも、同じなのだろうか??
うーーーん。。。

2 件のコメント:

  1. チェックボックスのnameが"hoge"で、
    ファンクションの方で取得しにいっている
    オブジェクトはfooなのって何か意味あるのかな??

    返信削除
  2. やっちゃった><
    記事のバグです。

    foo⇒hogeです。

    コメントサンクス♪

    返信削除