jQueryUI Radio / Check按钮不会以编程方式更改

时间:2010-08-25 20:05:37

标签: jquery html jquery-ui

我可以预测读取jQueryUI单选按钮的值,但是,我无法以编程方式设置它。无论我使用哪种方法来更改单选按钮的值,jQueryUI接口都不会更新其接口。

<div id="radio">
    <input type="radio" name="radio" value="true" checked="checked" />Yes
    <input type="radio" name="radio" value="false" />No
</div>

<script type="text/javascript">
    $('#radio').buttonset();

    // One of the many ways that won't work.
    $('[name="radio"]:radio:checked').val("false");
</script>

4 个答案:

答案 0 :(得分:20)

更新值后,如下所示:

$('[name="radio"][value="false"]').attr("checked", true);

您需要告诉jQuery UI更新,如下所示:

$('#radio').buttonset("refresh");

You can give it a try here

答案 1 :(得分:8)

我通常做一个:

$('[name="radio"][value="false"]').attr("checked", true).trigger("change");

buttonset(“refresh”)调用绑定到change事件,当你以编程方式更改值时,它不会被触发 - 触发它会手动解决ui问题,你不必担心buttonset的位置是

答案 2 :(得分:4)

$('[name="state"]:radio:checked').attr('checked', true);   // checked
$('[name="state"]:radio:checked').removeAttr('checked');   // unchecked

** 注意 **

$(':radio').val();  // same as $(':radio').attr('value');

因此:

$(':radio[checked]').val(); // -> the value of the first checked radio button found

答案 3 :(得分:1)

我通常做一个:

$('[name="radio"][value="false"]').prop("checked", true).trigger("change");

请使用&#34; prop&#34;而不是&#34; attr&#34;改变&#34;检查&#34;状态。