флажок не работает вручную

0
 $('.checkboxInTable').click(function(e){
    e.preventDefault();

    var selected = $(this);
    selected.prop('checked', true);
    //selected.attr('checked', true);
   }

.prop() ничего не добавляют в HTML

attr add checked="checked" но визуально ничего не меняется

JQuery v1.9

  • 1
    почему вы хотите установить атрибут? вместо проверенного состояния
Теги:

4 ответа

0
Лучший ответ

может быть полезно связать событие изменения в документе, если вы создаете динамический флажок.

попробуйте использовать e.stopPropagation() вместо e.preventDefault(), а также удалить return false. Возврат false в jQuery эквивалентен e.stopPropagation() + e.preventDefault(). e.preventDefault() запрещает проверку флажка.

$(document).on("change",".checkboxInTable", function(e){
        e.preventDefault();
        var selected = $(this);
        if(!$(selected).is(":checked")) // check first if the checkbox is checked or not
          $(selected).prop('checked', true); // if not then check it, BUt when you want to uncheck, it will not allow you by using this method.
    });
3

измените событие из click() чтобы change() попробуйте это:

           $('.checkboxInTable').change(function(e){
              e.preventDefault();

              var selected = $(this);
              selected.prop('checked', true);
           });
  • 0
    это всегда будет оставлять флажок установленным, даже если вы попытаетесь снять флажок.
  • 0
    Спасибо, но я думаю, что e.preventDefault (); не работает с изменениями. Я хотел бы предотвратить проверку, а затем проверить вручную
0

[Обновить] Попробуйте это исправление. [EDIT] Извините за дублирование, кто-то еще отправил то же самое решение передо мной @Alessandro Minoccheri.

$('.checkboxInTable').change(function (e) {
    e.preventDefault();

    var selected = $(this);
    selected.prop('checked', true);
}
);

===============
Что касается вашего кода Эта строка предотвращает выбор флажка, поэтому он всегда будет по умолчанию, когда он просматривается при загрузке страницы. т.е. кажется только для чтения?

e.preventDefault();

Ваш код будет работать правильно, если вы захотите, установите флажок, он останется включенным.

$('.checkboxInTable').click(function(e){
        //e.preventDefault();

        var selected = $(this);
        selected.prop('checked', true);
        //selected.attr('checked', true);
       }
0

Я обнимаю проблему, используя

onChange = "plzCheck (this)" на моем html флажке

то myCheckbox.checked = true;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню