あまりしないので結構こまってしまいましたのでメモ・・・。
<script type="text/javascript"> function clickfunc(){ var len = document.form1.chkBox.length; for(i=0; i < len ; i++) { if ( document.form1.checkbox[i].checked ) { //チェックが入っている時の処理 //document.form1.checkbox[i].valueで値が取得できる } } } </script> ・・・ <form method=post name="form1" action="xxx.html>" <input type="button" value="ボタン名称" onClick=clickfunc()> <input type="checkbox" name="chkBox" value="xxx1> <input type="checkbox" name="chkBox" value="xxx2> <input type="checkbox" name="chkBox" value="xxx3> </form>
一見問題なさそうですが、これには落とし穴があります。
チェックボックスを表示する行が1行のときだとlenがundefinedとなってしまいます。
悩んだあげく、1行の場合の処理を追加しました・・・。
よりよい方法をご存じの方は教えて下さい。
<script type="text/javascript> function clickfunc(){ var len = document.form1.chkBox.length; if ((len === undefined) && (document.form1.chkBox.checked == true)){ //1行の場合の処理 //チェックが入っている時の処理 document.form1.checkbox[i].valueで値が取得できる }else{ //複数行の場合の処理 for(i=0; i < len ; i++) { if ( document.form1.chkBox[i].checked ) { //チェックが入っている時の処理 //document.form1.checkbox[i].valueで値が取得できる } } } } </script> ・・・ <form method=post name="form1" action="xxx.html>" <input type="button" value="ボタン名称" onClick=clickfunc()> <input type="checkbox" name="chkBox" value="xxx1> <input type="checkbox" name="chkBox" value="xxx2> <input type="checkbox" name="chkBox" value="xxx3> </form>