- ベストアンサー
Nameは配列で、チェックされた箇所を特定したい。
こんにちは。 下記のように、nameを配列に設定してるCheckBoxについて、 func()内で、チェックされたCheckBoxを特定するには どうすればよいでしょうか? チェック済みのCheckBoxではなく、 func()を起動させた、チェック、チェック解除箇所です。 チェックする度、解除する度、変るはずです。 <input type="checkbox" name="arr[]" onClick="func()"> <input type="checkbox" name="arr[]" onClick="func()"> <input type="checkbox" name="arr[]" onClick="func()"> <input type="checkbox" name="arr[]" onClick="func()">
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>arr[]の何番目かというのは判らないのでしょうか? <html> <head> <script language="JavaScript"><!-- function func(obj) { var a = document.getElementsByName("arr[]"); for(var i = 0; i < a.length; i++){ if(a[i] == obj){ alert(i); } } } // --></script> </head> <body> <form> <input type="checkbox" name="arr[]" onClick="func(this)"> <input type="checkbox" name="arr[]" onClick="func(this)"> <input type="checkbox" name="arr[]" onClick="func(this)"> <input type="checkbox" name="arr[]" onClick="func(this)"> </form> </body> </html> この方法が正しいのかちょっと自信はありませんが、Windowsの IE6 Opera9 FireFox2 で動作確認しました。
その他の回答 (4)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
別解として(めんどくさい方法)idを指定してそこから取り出す。 (数字だけのIDは指定出来ません。アルファベットなどと組み合わせてください) <input type="checkbox" name="arr[]" id="arr1" value="check1" onlick="func(this);"> <input type="checkbox" name="arr[]" id="arr2" value="box1" onlick="func(this);"> func(element){ var num=element.id.substr(3,element.id.length); alert(num); } あらかじめJSONオブジェクトを作っておくと(valueから判断する場合) var chklist={'check1':1,'box1':2}; func(element){ var num=chklist[element.value]; alert(num); } 普通はANo.4のようにループさせて引数と同じオブジェクトかどうかを判断すると思います。 蛇足ながら<a>のname属性と混同される方も多いので、 <input>のname属性はHTML4.01、XHTML1.0、XHTML1.1ともsubmitとresetをのぞき必須(required)、submitとresetは任意 idに使用出来ない文字でもnameに使用出来る文字であれば、nameに指定することが出来ます > DTDより、INPUTに関する部分 > <!-- attribute name required for all but submit and reset --> 自分でも必須というのは今になって初めて知りました。。。
- PED02744
- ベストアンサー率40% (157/390)
1.name属性は推奨されません。id属性を使います。 name属性はXHTML1.1で廃止されています。 HTML4.0なら問題ないですが、id属性も併用するほうがよろしいでしょう。 2.id(name)属性で使える文字は、[a-zA-Z]、[0-9]、ハイフン(-)、アンダーライン(_)、コロン(:)、ピリオド(.) だけなので、"[]"を使ってはいけません。 IDは普通の名前にして、onClickでfunc(this)などとして、JavaScript上でチェック対象をチェック すると思います。
- venzou
- ベストアンサー率71% (311/435)
関数を呼び出すときにthisを引数で渡します。 サンプル <html> <head> <script language="JavaScript"><!-- function func(obj) { alert(obj.checked); } // --></script> </head> <body> <form> <input type="checkbox" name="arr[]" onClick="func(this)"> <input type="checkbox" name="arr[]" onClick="func(this)"> <input type="checkbox" name="arr[]" onClick="func(this)"> <input type="checkbox" name="arr[]" onClick="func(this)"> </form> </body> </html>
- yambejp
- ベストアンサー率51% (3827/7415)
<input type="checkbox" name="arr[]" onClick="func(this)"> とすればthisが自分自身(この場合はinputタグ)なので、特定できるでしょう。
お礼
回答ありがとうございます。 arr[]の何番目かというのは判らないのでしょうか?
お礼
回答ありがとうございます。 arr[]の何番目かというのは判らないのでしょうか?