Проверьте, установлен ли флажок «это» - PullRequest
21 голосов
/ 13 января 2012

Как мне работать, если флажок 'this' был установлен с помощью команды this?

У меня есть следующее, но я не уверен, как это реализовать (поэтому он проверяет только один выбранный флажок, а не все на странице

if ($('input[type="checkbox"]').is(':checked')

Ответы [ 7 ]

32 голосов
/ 13 января 2012

Как насчет этого?

if($(this).is(':checked'))
13 голосов
/ 13 января 2012

Предположительно, вы имеете в виду this в контексте обработчика событий ... В этом случае просто протестируйте свойство checked:

$('input[type="checkbox"]').click(function() {
    if (this.checked) {
        // checkbox clicked is now checked
    }
});

Обратите внимание, что вы можете сделать то же самое с помощью следующих методов:

  • $(this).is(':checked')
  • $(this).prop('checked')

Однако, this.checked избегает создания нового объекта jQuery, поэтому намного эффективнее (и быстрее кодирует). is является самым медленным: это занимает вдвое больше времени, чем prop, и примерно в 100 раз дольше, чем поиск простого свойства.

JSPerf сравнение между этими методами

4 голосов
/ 13 января 2012

Вам необходимо использовать селектор идентификаторов. Селектор input [type = "checkbox"] вернет все флажки.

if ($('#Checkbox1').is(':checked'))

где Checkbox1 - это идентификатор флажка

3 голосов
/ 13 января 2012

Просмотр prop(): http://api.jquery.com/prop/

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

elem.checked                      |  true (Boolean) Will change with checkbox state
$(elem).prop("checked")           |  true (Boolean) Will change with checkbox state
elem.getAttribute("checked")      |  "checked" (String) Initial state of the checkbox; does not change
$(elem).attr("checked")(1.6)      |  "checked" (String) Initial state of the checkbox; does not change
$(elem).attr("checked")(1.6.1+)   |  "checked" (String) Will change with checkbox state
$(elem).attr("checked")(pre-1.6)  |  true (Boolean) Changed with checkbox state
2 голосов
/ 13 января 2012

Вы имели в виду вот так (0 - индекс):

if ($(':checkbox').get(0).is(':checked'))

Или вот так:

if ($(this).is(':checked'))
1 голос
/ 13 января 2012

Я использую следующее:

$(this).find('input[type="checkbox"]:checked')

этот пример возвращает все флажки, отмеченные

1 голос
/ 13 января 2012

попробуйте следующее, где вы знаете идентификатор

$('#edit-checkbox-id').is(':checked'); 

или если вы уже ссылаетесь на элемент с этим ключевым словом

$(this).is(':checked');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...