- ベストアンサー
チェックボックスのvalue取得方法
- チェックボックスのvalueを取得する方法には、タイプ1とタイプ2があります。タイプ1では、select要素の専用のメソッドを使用して取得します。タイプ2では、checkboxのvalue属性を直接取得する方法を使用します。
- タイプ1では、select要素のオプションを操作するための専用のメソッドが用意されています。一方、タイプ2では、checkboxのvalue属性を直接取得するための方法を使用します。
- タイプ1とタイプ2の目的は同じですが、どちらの書き方が良いかは状況によります。タイプ1は柔軟な操作が可能であり、タイプ2はシンプルで短いコードで済む利点があります。一般的には、タイプ1を使用するサイトが多いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ただ、一点気になったところがあります。 >>おなじnameのチェックボックスを使用していますが、名前の競合を >>起こしていますね。あまりよい使い方とは思えませんね えーと、受け取ったサーバー側のプログラムの仕組みによります。 たとえばPHPなどで処理するなら <input type="checkbox" name="bbb[]"> のようにしておくだけで、競合せずに配列として受け取ることができます。 サーバーにデータを送信しないならあまり気にする必要はありません。 逆にjavascriptとしては同じnameにすると、確かにグルーピングする手間はへります ただアクセシビリティは落ちるので個人的には使いづらいと思います
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>質問1 )) >チェックボックスの場合もそれ専用のものはありますか? おなじnameのチェックボックスを使用していますが、名前の競合を 起こしていますね。あまりよい使い方とは思えませんね ラジオボタンと勘違いしていませんか? 単純にデータをとるのは <input type="checkbox" name="bbb" id="b_1" onchange="func(this)" value="B1" /> と自分自身をなげてcheckedをチェックしてやればいいかと あとはdocument.getElementById("b_1")でアクセスするとか >質問2 )) >タイプ1では取得することができませんでした。正しいと思うのですが、なぜでしょうか。 >var chk = document.getElementById('uli').children; せめてdocument.getElementById('uli').getElementsByName("INPUT")として chk[i].type=="checkbox"やchk[i].name=="bbb"を調べるなどのアプローチでしょうか >質問3 )) >多くのサイトではタイプ1を使っているところが多いようです。 selectについては古いブラウザの因習ですね いまはタイプ2でもいけると思いますよ チェックボックスについてはformのelementsをぐるっと走査するのが 一番確実だと思います
お礼
いろいろと参考になりました。有難うございます。 ただ、一点気になったところがあります。 >おなじnameのチェックボックスを使用していますが、名前の競合を >起こしていますね。あまりよい使い方とは思えませんね http://www.tohoho-web.com/how2/form.htm http://www.tagindex.com/html_tag/form/input_checkbox.html http://plog.pya.jp/program/php/lesson08/sample04.html nameを同じにすることでグループを作ることができる、という説明がありますが 独立するかグループにするかで何が変わるのでしょうか?
お礼
他のプログラムでは問題がでてくることがあるのですね。 参考になりました。有難うございます。