Вопрос по jquery, jquery-mobile, checkbox, javascript – Проверьте, установлен ли флажок JQuery для мобильных устройств

8

У меня есть список флажков & amp; Я хочу получить статус каждого из них. Список здесь:

<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» флажки все сразу?

От jquerymobile версии 1.3 см. Ответ в этом вопросе:stackoverflow.com/questions/15031831/… Peacemoon
Да, как массив. Sana Joseph
Список как в массиве? Или вы хотите, чтобы они были добавлены в документ как<ul><li></li><ul> так далее? Jasper Mogg

Ваш Ответ

4   ответа
3

У меня есть этот код. Я думаю, что вы должны приспособиться к вашему делу.

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

для jQm 1.3 я должен был проверить класс на этикетке в div обертки

  • ui-checkbox-off
  • ui-checkbox-on

пример кода (уже предоставлен 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>
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
   }

});

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/

Читать дальше на.each() а также.map()

@JasperMogg, спасибо, сэр.
Это хорошо, сэр, это сексуальный ответ.
@SanaJoseph, если вы проверите консоль на этой страницеjsfiddle.net/joycse06/rL3Ze/1/showвы увидите, что он регистрирует объекты и просматривает источник, который он использует1.7.1
Спасибо миллион ... очень полезный ответ. Sana Joseph
@SanaJoseph, милости прошу, рад помочь. :)
3

Вы можете использовать JQuery каждой функцииhttp://api.jquery.com/jQuery.each/

.each функция поможет вам пройти через ваши флажки

Похожие вопросы