检查是否选中了JQuery mobile复选框

时间:2012-06-21 13:09:36

标签: javascript jquery jquery-mobile checkbox

我有一个Checkboxes&列表我想获得每个人的状态。 清单在这里:

<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”复选框的状态?

4 个答案:

答案 0 :(得分:27)

你可以做到

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
   }

});

<强>更新

如果您想使用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);​

演示: http://jsfiddle.net/joycse06/rL3Ze/

详情阅读.each().map()

答案 1 :(得分:3)

我有这个代码。我认为你应该适应你的情况。

  $('#formfriends input[type=checkbox]').each(function() {
    if ($(this).attr('checked'))
     //$(this).attr('disabled' , true);
     // do what you want here
  });

答案 2 :(得分:3)

你可以使用jQuery每个函数http://api.jquery.com/jQuery.each/

.each函数将帮助您遍历复选框

答案 3 :(得分:1)

对于jQm 1.3我必须检查包装器div中标签上的类

  • UI-复选框断
  • UI-复选框上

samplecode(已由jQm呈现):

<div class="ui-checkbox">
  <label data-corners="true" data-shadow="false" data-iconshadow="true" data-wrapperels="span" data-icon="checkbox-off" data-theme="a" data-mini="false" class="ui-checkbox-off ui-btn ui-btn-corner-all ui-fullsize ui-btn-icon-left ui-btn-up-a">
    <span class="ui-btn-inner">
      <span class="ui-btn-text">
        myLabel
      </span>
      <span class="ui-icon ui-icon-checkbox-off ui-icon-shadow">&nbsp;</span>
    </span>
  </label>
  <input type="checkbox" name="flip-num" class="flip-num">
</div>