San*_*eph 8 javascript checkbox jquery jquery-mobile
我有一个复选框列表,我想获得每个复选框的状态.清单在这里:
<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<input type="checkbox" name="Sunday" id="Sunday-1" class="custom" />
<label for="Sunday-1">Sunday</label>
<input type="checkbox" name="Monday" id="Monday-1" class="custom" />
<label for="Monday-1">Monday</label>
<input type="checkbox" name="Tuesday" id="Tuesday-1" class="custom" />
<label for="Tuesday-1">Tuesday</label>
</fieldset>
</div>
Run Code Online (Sandbox Code Playgroud)
我通常使用此引号检查复选框的状态:
var isChecked = $('#CheckboxID').is(':checked');
但在我的情况下,是否有一种方法可以立即获取"Jquery Mobile"复选框的状态?
Pra*_*Nag 27
你可以做
var status = $('input[type="checkbox"]').filter('.custom').map(function(){
return $(this).is(':checked') ? 1 : 0;
});
Run Code Online (Sandbox Code Playgroud)
然后,status array将以相同的顺序为每个复选框添加一个条目,0用于未选中和1已选中.它没有多大用处,因为你没有关于数组中复选框的其他信息.
如果你想根据status你可以使用.each()而执行操作,比如
$('input[type="checkbox"]').filter('.custom').each(function(){
if($(this).is(':checked')){
// perform operation for checked
}
else{
// perform operation for unchecked
}
});
Run Code Online (Sandbox Code Playgroud)
UPDATE
如果您想array of objects使用name and status复选框构建一个,您可以使用
var status = $('input[type="checkbox"]').filter('.custom').map(function(){
var name = $(this).attr('name');
if($(this).is(':checked'))
return { 'name':name, 'status' : 'Checked'};
else
return { 'name':name, 'status' : 'UnChecked'};
});
console.log(status);?
Run Code Online (Sandbox Code Playgroud)
演示: http ://jsfiddle.net/joycse06/rL3Ze/