Как правило, браузеры вообще не передают значение отключенных полей. (В соответствии с обязательным стандартом HTML)
Важно видеть, что из-за того, что браузер не отправляет данные, проблема не зависит от фреймворка Решение также не зависит от вашей структуры:
- Двойное поле: каждое текстовое поле, которое вы собираетесь отключить, должно иметь скрытое "теневое" поле, в которое копируется его значение.
- В функции Javascript, которая выполняет отправку, вы можете повторно включить поля только на время отправки. Я еще не пробовал эту опцию, поэтому я не уверен, хорошая ли это идея или действительно ли она работает (хотя и должна).
Отдельная, специфичная для Wicket проблема заключается в том, что даже если браузер отправляет значения, любой компонент Wicket, для которого вызван setEnabled(false)
, откажется их обрабатывать. Поэтому вам придется расширить двойное поле и на структуру компонентов Wicket, что будет выглядеть не очень хорошо.
Так что это выполнимо, но вы должны знать, что пользователи не ожидают отправки отключенных полей, и вы, вероятно, вызовете путаницу, изменяя стандартное поведение входных данных формы. Возможно, вы захотите подумать о редизайне вашего интерфейса в качестве альтернативы.