Как установить флажок динамически - jQuery Mobile

С HTML флажок создается следующим образом:

<form>
   <input type="checkbox" id="category1">Category1<br>
</form>

С javascript мы можем установить флажок так:

$("#category1")[0].checked = true

Сейчас я пытаюсь создать ту же страницу с помощью jquery-mobile. Флажок выглядит так:

<form>
    <label>
        <input name="checkbox-0 " type="checkbox">Check me
    </label>
</form>

Почему нет id Вот? Это имя id? Должен ли я удалить имя атрибута и создать его с именем id?

Как я могу проверить этот флажок здесь с Javascript/jQuery?

Я попробовал приведенный выше код, но он не работает для этого флажка.

4 ответа

Решение

Вам нужно обновить его после изменения .prop, с помощью .checkboxradio('refresh'), Это правильный способ поставить галочку / радио в jQuery Mobile.

демонстрация

$('.selector').prop('checked', true).checkboxradio('refresh');

Ссылка: jQuery Mobile API

Ты можешь сделать:

$('input[name="checkbox-0"]').prop("checked", true).checkboxradio('refresh'); //sets the checkbox
var isChecked =  $('input[name="checkbox-0"]').prop("checked"); //gets the status

Прямо из документов JQ Mobile:

$("input[type='checkbox']").attr("checked",true);

С решением от @Omar я получаю ошибку:

Неперехваченная ошибка: невозможно вызвать методы на флажке радио до инициализации; попытался вызвать метод "обновить"

На самом деле у меня был флажок переключателя:

      <div class="some-checkbox-area">
    <input type="checkbox" data-role="flipswitch" name="flip-checkbox-lesson-complete"
           data-on-text="Complete" data-off-text="Incomplete" data-wrapper-class="custom-size-flipswitch">
</div>

и нашел решение:

      $("div.ui-page-active div.some-checkbox-area div.ui-flipswitch input[type=checkbox]").attr("checked", true).flipswitch( "refresh" ) 

Заметки

  • Я обычно не указываю идентификаторы для содержимого страницы, поскольку jQuery Mobile загружает несколько div.ui-pageсодержимое на единую HTML-страницу для повышения производительности. Поэтому я никогда толком не понимал, как я могу использовать id если это может произойти более одного раза в HTML body (может кто это прояснит).
  • Если я использую prop скорее, чем attrпереключатель переходит в бесконечный цикл переключения! Я больше не расследовал ...
Другие вопросы по тегам