30Июн/095
Почему disabled input элементы формы не передаются?
Сегодня столкнулся с одной особенностью INPUT элементов с атрибутом disabled. Как оказалось - они не передаются серверу при сабмите формы.
Вышел из положения вот таким изящным способом на jQuery:
$(function(){ $("form").submit(function(){ $("input").attr("disabled", ""); $("select").attr("disabled", ""); }); }); |
Таким образом, при действии submit у всех input и select элементов убирается атрибут disabled. Один минус - не работает при отключенных скриптах. Но в моём случае без JavaScript и jQuery не работает вообще всё приложение, так что это не так страшно.
Понравилась статья?
Комментарии (5)
Пинги (0)
(подписаться на новые комментарии в этой ветке)
Нет обратных ссылок на эту запись.
Ноябрь 9th, 2009 - 03:47
А не проще добавить с тем же названием, что и задисабленый контрол? Если контрол будет не дисабленные, то передастся его значение, иначе значение от hidden. И ява скрипт станет не важен.
Ноябрь 9th, 2009 - 03:49
Съелся html в предыдущем коменте…
Добавить надо hidden контрол перед искомым и с тем же именем, что и искомый.
Ноябрь 13th, 2009 - 12:47
@wra: Дело в том, что в моём случае JS уже нужен для валидации формы и как рза он устанавливает disabled на нужные поля при определенных условиях. И два контрола с одинаковым name у меня вызывают подозрения в плане совместимости броузеров… Но спасибо за наводку!
Сентябрь 30th, 2011 - 01:05
Для того, что бы иметь нередактируемые поля, но получить их содержимое, используется атрибут readonly.
Ноябрь 21st, 2011 - 18:24
Согласен с Dmitriy, правильнее использовать readonly. Это, как говорится, by design. Автор молодца за такой воркэраун, но, увы, это костыль.