Извлечение значения флажка с помощью Javascript?

81
8

Я создаю динамическую форму, содержащую довольно много флажков. Из-за сложности формы нормальная форма submit не подходит, и поскольку форма предназначена для нескольких пользователей одновременно, то я делаю это извлечение значений форм и их сохранение в объектах JavaScript, прежде чем сериализовать как массовые данные для отправки и обработки на стороне сервера.

До сих пор это отлично работало, но я столкнулся с проблемой с вкладками checkbox. Несмотря на отсутствие проверки, атрибут value всегда возвращается из $('input[name=checkbox_name]').val(); несмотря на то, действительно ли флажок установлен.

Я пытался исправить это до сих пор:

    Добавление значения, отличного от значения по умолчанию (которое on) Добавление checked атрибута, но я не совсем уверен, какие значения действительны, а какие нет; например, с консолью Google Chrome я добавил атрибут/значение checked="checked" который должен проверять флажок в режиме реального времени, но он не Размещение скрытого элемента ввода с тем же атрибутом name что и флажок со value=0 перед установкой флажка в соответствии с http://bit.ly/MLxCht

Любые ответы, в которых подробно описывается, как я могу извлечь текущее значение (снято или отмечено) флажка, будут очень оценены.

спросил(а) 2012-07-28T16:58:00+04:00 8 лет, 3 месяца назад
1
Решение
98

Вместо того, что другие предлагают, почему не просто:

$('input[name=your_name]:checked')

ответил(а) 2012-07-28T17:07:00+04:00 8 лет, 3 месяца назад
41

попробуй это

$(...).is(":checked")

или

$(...).attr('checked')

ответил(а) 2012-07-28T17:02:00+04:00 8 лет, 3 месяца назад
41

$('input[name=checkbox_name]').prop('checked')

(Вы также можете использовать .is(':checked') для краткости, но это медленнее.)

ответил(а) 2012-07-28T17:01:00+04:00 8 лет, 3 месяца назад
42

Пытаться:

$('input[name=your_name]').is(':checked');

Для того, чтобы проверить работоспособность или нет

ответил(а) 2012-07-28T17:01:00+04:00 8 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема