我尝试使用此代码来实现我想要做的事情。当我在普通的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!">
<input type="button" onclick="SetAllCheckBoxes('myForm', 'myCheckbox', false);" value="I don't like any of them!">
答案 0 :(得分:25)
我不知道在通过JQuery或Javascript取消选中/检查它们之后需要刷新JQuery Mobile的复选框。这是代码:
$("input[type='checkbox']").attr("checked",true).checkboxradio("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");