jQuery - перепроверить флажки после очистки их с помощью remoteAttr () - PullRequest
3 голосов
/ 30 января 2012

если я сбрасываю кучу полей ввода: флажок с помощью resetAttr (), который работает отлично, я не могу перепроверить эти флажки, используя данные ajax-ответа в сочетании с .attr ('флажок', ' правда ').

Таким образом, рабочий процесс сценария должен быть таким:

  1. Получить некоторые данные во время ajax-запроса. Если это успешно, продолжайте.

  2. При открытии формы сбросьте все ее содержимое, включая флажки. Это не работает с document.getElementById("ID").reset(); один. Поэтому я использовал removeAttr();

  3. Теперь возьмите данные ajax-запроса и поместите их в DOM, используя jQuery('#SomeID').find('input[value="'+SomeObject[key]+'"]').attr('checked','true');

Без использования remoteAttr () перед заполнением формы, как описано в шаге 3. Использование removeAttr () приводит к тому, что заполнение флажков будет игнорироваться.

Есть предложения? С наилучшими пожеланиями Ральф

ОБНОВЛЕНИЕ: я нашел решение, которое немного неприятно, но работает:

Сначала я удаляю отмеченные атрибуты с помощью: jQuery('#form').find('input:checkbox').attr('checked',false);

А затем снова сбросьте форму, используя: document.getElementById("such-sets-_viewSuchSets-form").reset();

После этого я заполняю форму отмеченными флажками, текстовыми полями и т. Д., Используя jQuery (). Val () и т. Д.

Ответы [ 2 ]

5 голосов
/ 14 февраля 2013

Для тех, кто ищет решение этой проблемы. Кажется, это из-за того, что функция «attr» не обновляет статус флажка.

Пожалуйста, попробуйте изменить: $('.someClass').attr("checked", true);

в $('.someClass').prop("checked", true);

Для получения подробной информации, пожалуйста, посетите официальный документ: http://api.jquery.com/prop/

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

Почему бы вам не запустить это при открытии формы, а вместо этого установить все на false?

jQuery('#SomeID').find('input[value="'+SomeObject[key]+'"]').attr('checked',false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...