Сегодня столкнулся с одной особенностью INPUT элементов с атрибутом disabled. Как оказалось – они не передаются серверу при сабмите формы.
Вышел из положения вот таким изящным способом на jQuery:
$(function(){ $("form").submit(function(){ $("input").attr("disabled", ""); $("select").attr("disabled", ""); }); });
Таким образом, при действии submit у всех input и select элементов убирается атрибут disabled. Один минус – не работает при отключенных скриптах. Но в моём случае без JavaScript и jQuery не работает вообще всё приложение, так что это не так страшно.
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Съелся html в предыдущем коменте…
Добавить надо hidden контрол перед искомым и с тем же именем, что и искомый.
Для того, что бы иметь нередактируемые поля, но получить их содержимое, используется атрибут readonly.
30 сентября 2011 at 1:05Согласен с Dmitriy, правильнее использовать readonly. Это, как говорится, by design. Автор молодца за такой воркэраун, но, увы, это костыль.
21 ноября 2011 at 18:24
А не проще добавить с тем же названием, что и задисабленый контрол? Если контрол будет не дисабленные, то передастся его значение, иначе значение от hidden. И ява скрипт станет не важен.
9 ноября 2009 at 3:47