使用 Jquery Mobile 选中和取消选中单选按钮

我无法使用 jquery mobile 以编程方式检查一组复选框,我有以下代码:

I can't check a set of checkboxes programatically with jquery mobile, I have the following code:

<div data-role="fieldcontain"  id="div_radio" class="radiogroup">
    <fieldset data-role="controlgroup">
        <input type="radio" name="radio-pieces" id="radio-choice-1" value="3" checked="checked" />
        <label for="radio-choice-1">1 to 3</label>

        <input type="radio" name="radio-pieces" id="radio-choice-2" value="5"  />
        <label for="radio-choice-2">4 to 5</label>

        <input type="radio" name="radio-pieces" id="radio-choice-3" value="6"  />
        <label for="radio-choice-3">over 5</label>
    </fieldset>
</div>

如果我这样做:$("input[type='radio']:last").attr("checked",true).checkboxradio("refresh"); 一切正常,但这些都不起作用:

If I do: $("input[type='radio']:last").attr("checked",true).checkboxradio("refresh"); everything works perfect, but none of this work at all:

$("input[type='radio']:first").attr("checked",true).checkboxradio("refresh");
$("input[type='radio']:eq(0)").attr("checked",true).checkboxradio("refresh");
$("input[type='radio']:eq(1)").attr("checked",true).checkboxradio("refresh");
$("input[type='radio']:eq(2)").attr("checked",true).checkboxradio("refresh");

如何正确操作这些元素?取消选中所有复选框也可以正常工作:

How can I properly manipulate these elements? Unselecting all checkboxes also works fine:

$("input[type='radio']").attr("checked",false).checkboxradio("refresh");

似乎唯一有效的复选框是最后一个.

It seems that the only checkbox working is the last one.

推荐答案

它们都工作得很好.您只需要在组中的所有 input radio 上触发 refresh.

They all work just fine. You just need to trigger refresh on all input radio in group.

$("input[type='radio']:first").attr("checked", "checked");
$("input[type='radio']").checkboxradio("refresh");

jsFiddle 这里.

相关文章