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

9
我无法使用jquery mobile编程自动检查一组复选框,我有以下代码:
<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"); 一切都很完美,但以下代码却毫无作用:

$("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");

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

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

似乎只有最后一个复选框有效。

5个回答

24

它们都可以正常工作。您只需要在组中的所有上触发refresh

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

jsFiddle在这里


5

除了以下方法外,其他都无法解决我的问题:

$('#reset').click(function(){
    $('#Store').trigger("click").trigger("click"); // yes... twice
});

在jQuery Mobile 1.4.2版本中。

1

对我来说,这样取消整个单选按钮组有效:

$(".my_class").removeAttr("checked");
$(".my_class").checkboxradio("refresh");

0

在JQuery Mobile中,可以通过以下方式刷新单选按钮:

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


    $(".iscfieldset input[type='radio']").checkboxradio().checkboxradio("refresh"); 

你可以试试这个,对我来说可行。


0

这看起来不对劲。 单引号不是必需的,input[type=radio] 是正确的。 我正在使用过时的版本(1.1.1)。 知道你使用的版本会很有帮助。

请记住,这些是单选按钮,一次只能选择一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接