playframework,输入禁用中断游戏的价值?

Dea*_*ler 3 html forms playframework

我有一个输入字段,从前一个表单填充(所以输入在第二页上设置为禁用)然后我们收到null值.这有效:

<input type="text" class="boxtpl" name="${field.name}" value="${user?.email}">
Run Code Online (Sandbox Code Playgroud)

但这不是:

<input type="text" class="boxtpl" name="${field.name}" value="${user?.email}" disabled="disabled">
Run Code Online (Sandbox Code Playgroud)

有没有理由为什么这似乎打破了框架?

tmb*_*gmn 6

禁用控件实际上不应该与表单一起提交,因此您所看到的实际上是正常行为.根据HTML表单规范:

设置后,disabled属性对元素具有以下影响:

  • 禁用的控件无法获得焦点.
  • 标签导航中会跳过已禁用的控件.
  • 禁用的控件无法成功.

定义successful可以在同一文件中找到.建议Play因此而被打破是有点荒谬的.

如果您希望有一个用户无法编辑的表单字段,而在提交表单时仍然应该将其另外发送,则可以使用只读属性,或使用JavaScript禁止用户输入.

更新:正如评论中指出的,以下几点也可能提供解决方案:

  • Play仍然可以将禁用控件的表单值保留在请求对象中,并且不会绑定它们(因此,如果需要,您可以从请求中检索它们)
  • 使用隐藏字段保留表单值,以防您仍想提交值,但不希望用户看到控件