Во-первых: Мне очень нравится ответ CMS. Гораздо проще. Но в случае, если это не самый лучший вариант ...
Почему вы не просто иметь функцию JQuery, привязанную к onsubmit
событий формы, пересекающей форму и захватывает вход для всех <input>
с в форме и позволяет им и затем представляет форму? Вам нужно знать, отключен ли вход? Вы обеспокоены тем, что включение ввода приведет к изменению визуального внешнего вида таким образом, который касается пользователя?
В любом случае вы можете добавить что-то к элементам, которые вы разрешаете. Для стилизации добавьте класс, который дает отключенным входам тот же вид, что и разрешенные входы. Если вам нужно знать, какие из них были отключены, добавьте что-либо к имени или самому значению, чтобы указать статус.
Из любопытства, когда вы когда-нибудь захотите отключить информацию? Если вход всегда отключен (что означает, что пользователь не установил его таким образом), вы уже не знаете значение? И если вход отключен пользователем, разве вы не обманчиво собираете эти данные?
Если значение отключено, потому что это что-то вроде «общего» поля, которое обновляется через js на основе других неинфицированных полей, я бы пошел с CMS, сделав его только для чтения.
на основе ваших ответов на CMS:
Я могу только представить несколько сценариев, в которых будут отключены отборное окно, но вы хотели бы, что передается обратно в сценарий. Основной вопрос, который приходит мне на ум, заключается в том, что некоторые блоки выбора становятся доступными, когда проверяются другие параметры, но вы предпочитаете, чтобы форма возвращала значение по умолчанию в поле выбора, а не скрипт сервера с заполнением пробелов.
Если это так, почему бы не настроить переключатель между скрытым вводом и поле выбора? Изначальное значение и имя для обоих входов будут одинаковыми, но если один из них включен, другой отключен. Таким образом, сценарий видит только один из двух входов, и поскольку у них одно и то же имя, он не попадает туда, откуда поступали данные.
$('form').submit(function() {
$('[disabled]').each(function(i) {
d_name = $(this).attr("name");
d_val = $(this).val();
$(this).after(
'<input type="hidden" name="' + d_name + '" value="' + d_val + ' />'
);
});
return true;
});
Только в случае, если вы думаете, что я слишком умозрительные, вот простая функция, которая будет работать на пользователя отправить. Обратите внимание, как он проходит через каждый отключенный элемент и добавляет новый скрытый ввод в DOM с таким же именем и значением, что и ваш скрытый ввод, тем самым гарантируя, что ваш серверный скрипт может обрабатывать все входные данные в целом.
Объясните серию событий, которые вы хотите, чтобы пользователь опыт , то мы можем помочь вам придумать решение. Должно быть что-то еще в этой истории, иначе мудрый нет причин использовать поле выбора, если он просто будет отключен. –
Вот одна из причин, почему мы хотели эту функциональность (в другом проекте, не связанном с OP). У нас есть веб-сайт AJAXed, который динамически загружает доступные параметры. В некоторых случаях, когда нельзя выбрать разные параметры, мы выбираем один и отключим элемент управления. Это нужно отправить обратно на сервер, потому что нам нужна настройка. (Да, теоретически, мы могли бы выяснить, какое значение будет на бэкэнде, но поскольку логика уже выполнена, нет необходимости усложнять ситуацию.) –
Ну, я думаю, это мертвый разговор, но кто-то его отложил , поэтому я поддержал его. –