jQuery buttonset没有反映更新

时间:2013-01-09 18:38:01

标签: jquery user-interface

我有一些使用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)。

3 个答案:

答案 0 :(得分: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);
  }
});

答案 1 :(得分: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"));
});

Demo here

答案 2 :(得分: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
});

FIDDLE

以下是button api

的链接