Странность с полями формы профиля. Баг?
Вводные:
Я решил заблокировать редактирование пользователями своего дня рождения в профиле. В скрипте прописал проверку (на примере дня) типа "если данные в поле 'день' уже есть, то для селекта с выбором дня .attr('disabled', true);"
Проблема:
Но при этом происходит странная петрушка. Селект-то дизейблится, но при нажатии кнопки "сохранить" данные в этом поле сбрасываются (обнуляются).
То же самое проявляется и с 'месяцем', и с 'годом'.
Вопрос:
Я что-то не знаю и так должно быть, что заблокированные поля html-формы вдруг стали передавать пустые значения или это баг, зарытый во фреймворке? Если баг, то как это дело исправить?
P.S. Пока сделал желаемое костылем через .hide() поля и наложения на него некоего <span> через .after() Но хотелось бы обойтись без костылей, а просто блокировать редактирование.
2 ответа
Ап
повесить обработчик на submit в котором удаляются атрибуты disabled
Спасибо, что откликнулись. Воспользовался Вашим костылем, он изящнее, чем мой.
Но вопрос почему форма обнуляет данные заблокированных полей и передает в них пустые значения, остается открытым...
это особенность html, а не wa.
https://www.w3.org/TR/html5/forms.html#constructing-the-form-data-set
неактивные поля не предполагают ввод и, следовательно, передачу данных
дубрируйте данные в hidden полях
Спасибо, что откликнулись. То, что они не предполагают передачу данных, понятно. Но почему они их все же передают, но пустые? Т.е. данные в них обнуляются по сабмиту. Вот это мне непонятно.