我有一个复选框列表,我想获取每个复选框的状态。
名单在这里:
<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>
我通常使用以下引用检查复选框的状态:
var isChecked = $('#CheckboxID').is(':checked');
但就我现在的情况而言,有没有一种方法可以一次性获取“Jquery Mobile”复选框的状态?
你可以做
var status = $('input[type="checkbox"]').filter('.custom').map(function(){
return $(this).is(':checked') ? 1 : 0;
});
然后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
}
});
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);
Demo: http://jsfiddle.net/joycse06/rL3Ze/ http://jsfiddle.net/joycse06/rL3Ze/
阅读更多内容.each() http://api.jquery.com/each and .map() http://api.jquery.com/map
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)