JavaScript - Очистить значение флажка в скрытом разделе HTML - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть веб-форма, отображающая ряд вопросов.Недавно сообщалось, что один из вопросов, показанных в условном разделе формы, сохранял свое значение, когда условие, используемое для отображения этого вопроса, было выполнено, затем не выполнено и выполнено снова.

т.е. если пользователь ответит «Да» на вопрос 1, будут показаны вопросы 1a и 1b, если они изменят свой ответ на вопрос 1 на «Нет», вопросы 1a и 1b будут скрыты, но если ониизменив ответ на вопрос 1 обратно на «Да», вопросы 1a и 1b будут показаны снова, а ответы, данные ранее были по-прежнему выбраны.1a и 1b должны вернуться к пустым / нулевым значениям после того, как они были скрыты и показаны снова.

Мне удалось очистить ответы на части (a) & (b), когда они скрыты, и повторно показать, если (a) &(b) это выпадающие элементы формы со следующим кодом:

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

Я попытался очистить выбор аналогично тому, как я сделал для раскрывающегося списка:

var cb = hiddenwrapper.children('select[id^="checkbox"]');
cb.checked = false;

Однако, когда я скрываю и повторно показываю вопрос с ответами флажка, выбирая «Да» и «Нет» в качестве ответа на вопрос 1, ранее проверенные флажки все еще проверяются при повторном отображении вопроса.

Отладка, которую я добавил, чтобы показать значение cb.checked после установки его в значение false, показывает, что это значение равно false, но сами флажки на самом деле все еще проверены:

cb:

проверено: false

длина: 0

Как снять флажки, если вопрос скрыт и повторно показан?

1 Ответ

0 голосов
/ 11 февраля 2019

Правильный способ установить / снять флажки с помощью jQuery - это метод .prop().

http://api.jquery.com/prop/

Так что это должно быть примерно так:

var cb = hiddenwrapper.children('select[id^="checkbox"]');
cb.prop('checked', false);
...