Установка состояния "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 в Google APIs?