2

jQuery UI と jQuery 1.6+ を使用したラジオ ボタンセットがいくつかあります。

特定のラジオが「yes」にチェックされると、別のラジオも強制的にチェックされます。

<input type="radio" name="111" class="set111a" id="111a" value="1" />
<input type="radio" name="111" class="set111b" id="111b" value="0" checked="checked" />

<input type="radio" name="112" class="set112a" id="112a" value="1" />
<input type="radio" name="112" class="set112b" id="112b" value="0" checked="checked" />

これは、他のラジオを強制的にチェックするために使用しているjQueryコードです。

$("#112a").change(function() {
    if ($("#112a").is(":checked")) {
        $('#111a').prop("checked",true);
        $("#111b").prop("checked",false);
    }
});

機能しますが、(フォームを送信して) データがチェックされている場合のみです。これは、112 が 1 の場合、111 が 1 であることを示しています。しかし、問題は次のとおりです。「111」ボタンの実際の視覚部分は、「NO」(または値 0) に設定されていることを示しています。

4

3 に答える 3

0

UIが更新されるように、ボタンセットで更新を呼び出す必要があります

$("#radio").buttonset(); // <-- whatever element you are wrapping the radio buttons in
$("#112a").change(function() {
    if ($("#112a").is(":checked")) {
        $('#111a').prop("checked",true);
        $("#111b").prop("checked",false);
    }
  $("#radio").buttonset('refresh'); // <-- refresh the buttonset
});

フィドル

ここにボタンAPIへのリンクがあります

于 2013-01-09T19:31:24.480 に答える
0

あなたのコードは私のために働いた。#111b必要に応じて、無効なラジオ ボタンを無効にすることを#111aお勧めします。また、ラジオ ボタンが実際にオンになっている場合にのみ、そのラジオ ボタンで変更イベントが発生するため、より広いセレクターが必要になる場合があります。

$("input").change(function()
{
  if ($("#112a").is(":checked"))
  {
      $('#111a').prop("checked",true);
      $('#111b').attr('disabled', 'disabled');
      $("#111b").prop("checked",false);
  }
  else
  {
      $('#111b').attr('disabled', null);
  }
});
于 2013-01-09T18:41:24.827 に答える
0

試してみてください、これがあなたのやりたいことですか

HTML

<input type="radio" name="111" class="set111a" id="111a" value="1" />
<input type="radio" name="111" class="set111b" id="111b" value="0" checked="checked" />

<input type="radio" name="112" class="set112a" id="112a" value="1" />
<input type="radio" name="112" class="set112b" id="112b" value="0" checked="checked" />

<input id="btn" type="button" value="Click after change"/>

JS

$("#112a").change(function() {
    if ($("#112a").is(":checked")) {
        $('#111a').click();
    }
});

$("#btn").click(function() {
    alert($("#111a").is(":checked"));
});

デモはこちら

于 2013-01-09T18:46:58.163 に答える