JavaScriptで、例えば3つのチェックボックスがあり、2つ以上選択すると、次の設問の6つ並んでいるラジオボタンのうちの最後2つを無効化するようなスクリプトをラジオボタン無効化のサンプルコードを参考に作ろうとしたのですが、うまくいきません。どのように書けばいいか、ご教示いただければ助かります。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/06/19 17:22:23
  • 終了:2013/06/20 11:17:32

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4523ベストアンサー獲得回数18792013/06/19 18:17:29

ポイント300pt

こんな感じかな。jQuery 使ってます。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function() {
    $("input.cx").click(function() {
        if ($("input.cx:checked").length >= 2) {
            $("input.r").slice(4,6).attr("disabled", true);
        } else {
            $("input.r:disabled").attr("disabled", false);
        }
    });
});
</script>

<form>
<input type="checkbox" name="cx1" class="cx">check1<br>
<input type="checkbox" name="cx2" class="cx">check2<br>
<input type="checkbox" name="cx3" class="cx">check3<br>
<hr>
<label><input type="radio" name="r" class="r" value="1">radio1</label><br>
<label><input type="radio" name="r" class="r" value="2">radio2</label><br>
<label><input type="radio" name="r" class="r" value="3">radio3</label><br>
<label><input type="radio" name="r" class="r" value="4">radio4</label><br>
<label><input type="radio" name="r" class="r" value="5">radio5</label><br>
<label><input type="radio" name="r" class="r" value="6">radio6</label><br>
</form>

jsFiddle に置いてみたので、確認してみてください。
http://jsfiddle.net/a_kuma3/S3jJU/embedded/result/

id:ryuvay

Prototype との競合に少しだけ悩まされましたが、問題なく稼動できました。
あと、
if ($("input.cx:checked").length >= 2) {
の次の行に
$("input[name='r']").val(['4']);
を追加して、先に無効になるはずのラジオボタンを選択されていた場合に4つ目に強制移動させるようにして完璧になりました。

本当に助かりました。ありがとうございます。

2013/06/20 11:16:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません