2

我有一些使用 jQuery UI 和 jQuery 1.6+ 的单选按钮集

当某个收音机被选中“是”时,另一个收音机也被强制检查。

<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

你的代码对我有用。#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 回答
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 回答