playframework, ввод отключен, перерывы воспроизведения от передачи значения? - PullRequest
3 голосов
/ 08 февраля 2012

У меня есть поле ввода, которое заполняется из предыдущей формы (поэтому на второй странице ввод отключен), и мы получаем null для значения тогда. Это работает:

<input type="text" class="boxtpl" name="${field.name}" value="${user?.email}">

но это не так:

<input type="text" class="boxtpl" name="${field.name}" value="${user?.email}" disabled="disabled">

Есть ли причина, почему это, кажется, нарушает рамки?

1 Ответ

6 голосов
/ 08 февраля 2012

Отключенные элементы управления не должны на самом деле отправляться вместе с формой, поэтому то, что вы видите, на самом деле является нормальным поведением.Согласно спецификации HTML-формы :

Если установлено, атрибут disabled имеет следующие эффекты для элемента:

  • Отключенные элементы управления не получаютfocus.
  • Отключенные элементы управления пропускаются при навигации по вкладкам.
  • Отключенные элементы управления не могут быть успешными.

Определение successful можно найти в том же документе .Немного бессмысленно утверждать, что Play не работает из-за этого.

Если вы хотите иметь поле формы, которое пользователь не может редактировать, в то время как оно все еще должно быть отправлено вместе с отправкой формы, вы можете использовать атрибут только для чтения или используйте JavaScript для запрета ввода данных пользователем.

Обновление: , как указано в комментариях, следующие пункты также могут предложить решение:

  • Возможно, Play по-прежнему сохраняет значения формы отключенного элемента управления в объекте запроса и просто не связывает их (так что вы можете извлечь их из запроса при необходимости)
  • Использоватьскрытое поле для хранения значения формы на тот случай, если вы все еще хотите передать значение, но не хотите, чтобы пользователь (и) видел элемент управления
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...