- ベストアンサー
ループの中のJavaScriptに関して
- JavaScriptを使用して、複数のチェックボックスの選択を制御する方法について質問があります。
- PHPのループでJavaScriptを組み込む方法についてアドバイスを頂きたいです。
- 特定の行が選択されているかどうかを判断するための変数の使用方法について教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ラジオボタンの件はそうなんですが、経験的にたぶんこの手の質問する人は、 「ラジオボタンはチェックを消せないから」というと思いますよ ちなみに、一つだけ独立させる・・・とかだと 適当にクラスネームをつけてやるとか、まぁなにか属性をつけるといいでしょう <script> function ctrl_check(obj) { var c=obj.checked; var f=obj.form; for(var i=0;i<f.length;i++){ if(f[i].type=="checkbox" && f[i]!=obj && f[i].className!='hoge') f[i].checked=false; } } </script> <?php for($i=0;$i<4;$i++){ print("<form>\n"); print("<input type=checkbox name='check01' value='1' class='hoge'>←これは独立\n"); print("<input type=checkbox name='check02' value='1' onclick='ctrl_check(this);' >\n"); print("<input type=checkbox name='check03' value='1' onclick='ctrl_check(this);' >\n"); print("<input type=checkbox name='check04' value='1' onclick='ctrl_check(this);' >\n"); print("</form>\n"); } ?>
その他の回答 (3)
- yyr446
- ベストアンサー率65% (870/1330)
「チェックボックスを複数(ここでは2つ)し、どちらかが選択された場合、もう片方の 方のチェックをはずす」 =>これって、nameを同じにしたラジオボタン(type="radio")で済むと思うんですけど 送信先でvalue値によってどのチェックボックスか判断すればよいだけかと...
補足
ありがとうございました!
- fujillin
- ベストアンサー率61% (1594/2576)
よくわかってませんが… ラジオボタンってそういうときのためにあるのではないのかなぁ… スクリプトなんか使わずに済むし。
補足
申し訳ありません。 私も良くわかっていなかったものですから。。。 参考にさせていただきます。
- yambejp
- ベストアンサー率51% (3827/7415)
こういう質問をするときには、簡素なソースにしたほうが、ご自身でも理解しやすいとおもいます 実際やってみるならこんな感じ <script> function ctrl_check(obj) { var c=obj.checked; var f=obj.form; for(var i=0;i<f.length;i++){ if(f[i].type=="checkbox" && f[i]!=obj) f[i].checked=false; } } </script> <?php for($i=0;$i<4;$i++){ print("<form>\n"); print("<input type=checkbox name='check01' value='1' onclick='ctrl_check(this);' >\n"); print("<input type=checkbox name='check02' value='1' onclick='ctrl_check(this);' >\n"); print("</form>\n"); } ?> ループで複数のフォームを作っているのであればidをスタティックにつけると idが競合するのでNGです。
補足
早速のご回答ありがとうございました! 思い通りの動きができました!! もう1点だけ確認させて下さい。 仮に複数のチェックボックスの中に、1つだけ独立した動きをする ようなチェックボックスがあった場合はどのように記述すれば良いでしょうか。。。 他のチェックボックスが選択されていたとしても、そのチェックボックスだけはチェック が可能となる。。。 追加の質問という形になって申し訳ありませんが、教えて頂ければ幸いです。 よろしくお願いします。
補足
何度もソースまで記述して頂き、ありがとうございました!! 思い通りの内容が実現できました!!