你有几个选择。
首先,您可以覆盖帮助器,只为 textarea 控件放入您自己的手动 HTML。这在“自己处理 HTML 输入创建”部分下的“使用表单模板帮助程序”下的文档中进行了描述,并且在此处描述了常见的陷阱。如果你想要一个包含标签的 div,你可以这样做:
@helper.input(field = articleForm("text")) { (id, name, value, args) =>
<div>
<label>text</label>
<textarea name="@name" id="@id" rows='3' cols='50'>@value</textarea>
</div>
}
您还可以使用 CSS 来设置textarea
助手生成的默认 HTML 样式。<dl>
标签只是一个定义列表,可以像任何 html 列表一样设置样式。作为参考,您可以在github中找到默认的字段构造函数代码,该代码向您展示了生成的 html 的样子。
我假设您正在谈论的“必需”标志是<dd>
您可以在生成的 HTML 中看到的错误标记。如果您不采用手动 HTML 路线,那么要摆脱它,您需要定义自己的字段构造函数。我在上面链接到的 Play 帮助页面也对此进行了描述。但是,如果您关心的只是消除错误,那应该很容易,只需复制默认字段构造函数代码(也在上面链接),然后更改或删除读取的部分@if(elements.hasErrors) {error}
以及以开头的三行@elements.errors(elements.lang).map
. “必需”错误本身来自@elements.infos...
.
或者这个字段不应该是必需的问题?这是表单定义的问题,而不是助手的问题。将表单中的“文本”字段设为可选,如Scala Forms 帮助页面中的“可选值”下所示。例如,如果您的任务定义位于Application.scala
:
val taskForm = Form (
"text" -> optional(text) // changed from 'nonEmptyText'
)
这也将使“文本”字段映射到 anOption[String]
而不是 plain String
。如果您的表单由案例类(或其他映射逻辑)支持,则您必须相应地更改它。