1

以编程方式更改单选按钮时,我的 jQuery Radioset 不会删除选中的属性。由于只能通过其自然行为选择一个单选按钮,我希望之前选择的按钮将被取消选中。我在这里吗?

为了演示它,我创建了一个简单的 jsfiddle:http: //jsfiddle.net/nL8ksLwt/

html:

<div id="radioset">
    <input type="radio" id="174928" name="freq">
    <label value="174928" class="tooltip" for="174928">5A</label>
    <input type="radio" id="176640" name="freq">
    <label value="176640" class="tooltip" for="176640">5B</label>
</div>
<button id="trigger">Trigger Change Event 5A</button>
<button id="trigger2">Trigger Change Event 5B</button>

js:

  $(function () {
      $("#radioset").buttonset();
  })
   $('#trigger').click(function () {
      $("#174928").attr('checked', true);
  });

  $('#trigger2').click(function () {
      $("#176640").attr('checked', true);
  });

我正在使用火狐。在网页上它确实有效,但如果您查看 firebug,您会发现选中的属性仍然存在。这会导致我的其他功能出现问题。

主要目标是以编程方式选择另一个单选按钮,以便一次只选择一个按钮(不触发 onchange-events)。如何以正确的方式做到这一点?

4

2 回答 2

3

不工作的原因:

  • attr 是基于字符串的。
  • prop 是基于布尔值的。
  • 所以对于收音机,复选框我们可以使用道具。您可以使用 attr 的其他基于文本的元素。

尝试使用 prop 而不是 attr 它不起作用

JsFiddle:http: //jsfiddle.net/nL8ksLwt/3/

  $(function() {
    $( "#radioset" ).buttonset();
  })
$('#trigger').click(function(){
    $("#174928").prop("checked", true);
});

$('#trigger2').click(function(){
    $("#176640").prop("checked", true);
});
于 2015-09-23T15:58:47.873 回答
1

您还可以触发单选按钮上的单击事件。

  $("#radiobutton").click();

这是小提琴

于 2015-09-23T15:59:34.003 回答