$('.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
может быть полезно связать событие изменения в документе, если вы создаете динамический флажок.
попробуйте использовать 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.
});
измените событие из click()
чтобы change()
попробуйте это:
$('.checkboxInTable').change(function(e){
e.preventDefault();
var selected = $(this);
selected.prop('checked', true);
});
[Обновить] Попробуйте это исправление. [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);
}
Я обнимаю проблему, используя
onChange = "plzCheck (this)" на моем html флажке
то myCheckbox.checked = true;