Установка состояния "checked" для чекбокса с помощью jQuery
Я хотел бы сделать что-то подобное для установки флажка в checkbox с помощью jQuery:
$(".myCheckBox").checked(true);
или
$(".myCheckBox").selected(true);
Существует ли что-то подобное?
5 ответ(ов)
Чтобы установить состояние чекбокса с помощью jQuery, используйте метод prop(), так как использование attr() для этой цели устарело. Вот пример кода:
$(".myCheckbox").attr('checked', true); // Устарело
$(".myCheckbox").prop('checked', true); // Рекомендуемый способ
Если вам нужно проверить, установлен ли чекбокс, вы можете использовать метод is() с селектором :checked:
$('.myCheckbox').is(':checked');
Таким образом, рекомендуется использовать prop() для установки состояния чекбоксов и is() для проверки их состояния.
Вы можете сделать это следующим образом:
$('.myCheckbox').attr('checked', true); // Соответствует стандартам
или
$("form #mycheckbox").attr('checked', true);
Если у вас есть пользовательский код в событии onclick для чекбокса, который вы хотите выполнить, используйте следующий код:
$("#mycheckbox").click();
Чтобы снять отметку, вы можете полностью удалить атрибут:
$('.myCheckbox').removeAttr('checked');
Чтобы отметить все чекбоксы, вы можете сделать это так:
$(".myCheckbox").each(function(){
$("#mycheckbox").click();
});
Вы также можете расширить объект $.fn новыми методами:
(function($) {
$.fn.extend({
check : function() {
return this.filter(":radio, :checkbox").attr("checked", true);
},
uncheck : function() {
return this.filter(":radio, :checkbox").removeAttr("checked");
}
});
}(jQuery));
После этого вы сможете использовать их следующим образом:
$(":checkbox").check();
$(":checkbox").uncheck();
Если вы используете другую библиотеку, которая уже использует названия методов check и uncheck, вы можете дать им более уникальные имена, например mycheck() и myuncheck().
Если вам нужно программно установить флажок и вызвать событие клика для него, воспользуйтесь следующими строками:
$("#mycheckbox")[0].checked = true; // Устанавливает состояние флажка в "выбран"
$("#mycheckbox").attr('checked', true); // Устанавливает атрибут 'checked'
$("#mycheckbox").click(); // Генерирует событие клика
Обратите внимание, что последний вызов ($("#mycheckbox").click();) инициирует событие клика для чекбокса, тогда как первые два лишь изменяют его состояние без вызова обработчиков событий. Поэтому если у вас есть пользовательский код в обработчике onclick для чекбокса, который нужно выполнить, используйте именно последний способ.
Этот код выбирает элементы, которые имеют указанный атрибут с значением, содержащим подстроку "ckbItem":
$('input[name *= ckbItem]').prop('checked', true);
Этот селектор выберет все элементы <input>, у которых атрибут name содержит подстроку ckbItem и установит свойство checked в значение true. Если вам нужно выбрать элементы с определённым атрибутом, это подходящий способ.
Как проверить, отмечен ли чекбокс в jQuery?
Проверка состояния чекбокса с помощью jQuery
Изменение и обработка событий клика для чекбоксов с помощью jQuery
Проверка, отмечен ли чекбокс, с помощью jQuery
Прокрутка к элементу с использованием jQuery