45

Установка состояния "checked" для чекбокса с помощью jQuery

18

Я хотел бы сделать что-то подобное для установки флажка в checkbox с помощью jQuery:

$(".myCheckBox").checked(true);

или

$(".myCheckBox").selected(true);

Существует ли что-то подобное?

5 ответ(ов)

7

Чтобы установить состояние чекбокса с помощью jQuery, используйте метод prop(), так как использование attr() для этой цели устарело. Вот пример кода:

$(".myCheckbox").attr('checked', true); // Устарело
$(".myCheckbox").prop('checked', true); // Рекомендуемый способ

Если вам нужно проверить, установлен ли чекбокс, вы можете использовать метод is() с селектором :checked:

$('.myCheckbox').is(':checked');

Таким образом, рекомендуется использовать prop() для установки состояния чекбоксов и is() для проверки их состояния.

1

Вы можете сделать это следующим образом:

$('.myCheckbox').attr('checked', true); // Соответствует стандартам

или

$("form #mycheckbox").attr('checked', true);

Если у вас есть пользовательский код в событии onclick для чекбокса, который вы хотите выполнить, используйте следующий код:

$("#mycheckbox").click();

Чтобы снять отметку, вы можете полностью удалить атрибут:

$('.myCheckbox').removeAttr('checked');

Чтобы отметить все чекбоксы, вы можете сделать это так:

$(".myCheckbox").each(function(){
    $("#mycheckbox").click();
});
0

Вы также можете расширить объект $.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().

0

Если вам нужно программно установить флажок и вызвать событие клика для него, воспользуйтесь следующими строками:

$("#mycheckbox")[0].checked = true; // Устанавливает состояние флажка в "выбран"
$("#mycheckbox").attr('checked', true); // Устанавливает атрибут 'checked'
$("#mycheckbox").click(); // Генерирует событие клика

Обратите внимание, что последний вызов ($("#mycheckbox").click();) инициирует событие клика для чекбокса, тогда как первые два лишь изменяют его состояние без вызова обработчиков событий. Поэтому если у вас есть пользовательский код в обработчике onclick для чекбокса, который нужно выполнить, используйте именно последний способ.

0

Этот код выбирает элементы, которые имеют указанный атрибут с значением, содержащим подстроку "ckbItem":

$('input[name *= ckbItem]').prop('checked', true);

Этот селектор выберет все элементы <input>, у которых атрибут name содержит подстроку ckbItem и установит свойство checked в значение true. Если вам нужно выбрать элементы с определённым атрибутом, это подходящий способ.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь