检查&取消选中JQuery Mobile对话框中的复选框

时间:2012-12-02 23:55:29

标签: jquery-mobile checkbox dialog

我尝试使用此代码来实现我想要做的事情。当我在普通的HTML文件中尝试它时,它工作,但当我在我的JQuery Mobile页面中尝试它时,代码对我来说效果不佳。是否有不同的方法或代码来选择JQuery Mobile复选框?

这是我尝试过的代码:

JAVASCRIPT:

<script>
function SetAllCheckBoxes(FormName, FieldName, CheckValue)
{
    if(!document.forms[FormName])
        return;
    var objCheckBoxes = document.forms[FormName].elements[FieldName];
    if(!objCheckBoxes)
        return;
    var countCheckBoxes = objCheckBoxes.length;
    if(!countCheckBoxes)
        objCheckBoxes.checked = CheckValue;
    else
        // set the check value for all check boxes
        for(var i = 0; i < countCheckBoxes; i++)
            objCheckBoxes[i].checked = CheckValue;
}

HTML

<form method="GET" name="myForm" onsubmit="return false;">
<label for="myCheckbox1">
    <input type="checkbox" name="myCheckbox" value="1" id="myCheckbox1">
    I like Britney Spears 
</label>
<br>

<label for="myCheckbox2"><input type="checkbox" name="myCheckbox" value="2" id="myCheckbox2">
    I like Hillary Duff
</label>
<br>

<label for="myCheckbox3"><input type="checkbox" name="myCheckbox" value="3" id="myCheckbox3">
    I like Mandy Moore 
</label>
<br>

<input type="button" onclick="SetAllCheckBoxes('myForm', 'myCheckbox', true);" value="I like them all!">
&nbsp;&nbsp;
<input type="button" onclick="SetAllCheckBoxes('myForm', 'myCheckbox', false);" value="I don't like any of them!">

3 个答案:

答案 0 :(得分:25)

我不知道在通过JQuery或Javascript取消选中/检查它们之后需要刷新JQuery Mobile的复选框。这是代码:

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

http://api.jquerymobile.com/checkboxradio/#method-refresh

答案 1 :(得分:4)

试试这个:

function SetAllCheckBoxes(FormName, CheckValue){
    $.each($("#"+FormName+" input[type=checkbox]"), function(){
        $(this).attr("checked",CheckValue).checkboxradio("refresh");
    });
}

我删除了FieldName,因为你的函数名为SetAllCheckBoxes,只是你的输入字段是相同的。您只需要告诉您的表单和复选框的状态。

答案 2 :(得分:0)

要在jquery mobile中切换/刷新复选框,您需要使用.prop,而不是.attr。

$("input[type='checkbox']").prop("checked",true).checkboxradio("refresh");