Подтвердить что ты не робот

Метод jquery attr возвращает undefined для отмеченного флажка

Для вышеуказанного флажка

document.getElementById("checkbox1").checked // -> returns true

Но

var byAppr = document.getElementById('checkbox1').value;
$(byAppr).attr('checked') // -> returns undefined

Я тестирую это в firefox 3.6

4b9b3361

Ответ 1

Используйте одно из следующих действий:

  • $('#checkbox1').prop('checked') - в jQuery 1.6+, обычно путь
  • $('#checkbox1').is(':checked') - все версии jQuery, но медленнее
  • $('#checkbox1').attr('checked') - НЕ в jQuery 1.6 - но в 1.6.1 и <= 1.5, не использовать его

Кроме того, в случаях, когда у вас уже есть элемент DOM, доступный напрямую (например, this в обработчике событий, связанном с этим полем), используйте this.checked вместо $(this) с одним из вышеперечисленных методов!

Ответ 2

Вы выбираете на основе значения. Я думаю, вы хотите:

var byAppr = document.getElementById('checkbox1');
$(byAppr).attr('checked')