5

Проверка, отмечен ли чекбокс, с помощью jQuery

11

Задача: мне нужно получить значение из флажка (checkbox) в зависимости от того, установлен он или нет. Если флажок отмечен, я хочу получить значение 1, в противном случае — 0. Как я могу это сделать с помощью jQuery?

Код, который я использую:

<input type="checkbox" id="ans" value="1" />

Проблема в том, что при использовании $("#ans").val() я всегда получаю 1, даже если флажок не отмечен. Как мне правильно реализовать логику, чтобы получать 0, если флажок не установлен?

5 ответ(ов)

2

В вашем коде вызов $("#ans").attr('checked') позволяет узнать, отмечен ли элемент с ID ans. Также вы можете использовать второй параметр true/false, чтобы отметить или снять отметку с чекбокса:

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

Однако, как было замечено в комментарии, лучше использовать метод prop вместо attr, когда это возможно. Например, чтобы проверить состояние чекбокса, вы можете использовать:

$("#ans").prop('checked');

Использование prop более предпочтительно, так как оно правильно отражает булевое значение свойства, в отличие от attr, который может возвращать строку.

0

Просто используйте $(selector).is(':checked'). Это возвращает булево значение.

0

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

// используйте тернарные операторы
var answer = $("#ans").is(':checked') ? 1 : 0;

В данном примере мы проверяем, выбран ли элемент с id ans. Если он выбран (true), переменная answer будет равняться 1, если не выбран (false) — будет равняться 0.

0

Вы можете попробовать вот так:

$('#studentTypeCheck').is(":checked");

Этот код проверяет, отмечен ли элемент с идентификатором studentTypeCheck. Если он отмечен, метод вернет true, в противном случае — false.

0

Вы можете получить значение отмеченного чекбокса, используя следующий код на jQuery:

$('input:checkbox:checked').val(); // получает значение отмеченного чекбокса

Эта команда выберет все чекбоксы, которые отмечены (состояние checked), и вернет их значение с помощью метода .val(). Если необходимо получить значения всех отмеченных чекбоксов в виде массива, можно использовать:

$('input:checkbox:checked').map(function() {
    return $(this).val();
}).get(); // возвращает массив значений всех отмеченных чекбоксов

Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!

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