带有scala播放表单帮助器的文本字段

带有scala播放表单帮助器的文本字段,scala,playframework,playframework-2.0,textfield,Scala,Playframework,Playframework 2.0,Textfield,Scala表单助手并不像我期望的那样一致 @form(action = routes.Admin.insertNewArticle, 'class -> "form-horizontal") { <fieldset> @textarea(field = articleForm("text"), args = 'rows -> 3, 'cols -> 50) @input(articleForm("author"), "author") <

Scala表单助手并不像我期望的那样一致

@form(action = routes.Admin.insertNewArticle, 'class -> "form-horizontal") {
  <fieldset>
    @textarea(field = articleForm("text"), args = 'rows -> 3, 'cols -> 50)
    @input(articleForm("author"), "author")
  </fieldset> 
}
@form(action=routes.Admin.insertNewArticle,'class->“表单水平”){
@textarea(field=articleForm(“text”),args='rows->3',cols->50)
@输入(文章格式(“作者”),“作者”)
}
输入
字段看起来非常漂亮,左侧有标签,右侧有字段。但是
文本区域
很奇怪,它不是用带标签的
包装的,而是用
标签包装的,底部有一个我不知道如何删除的“必需”标志

下面是它的外观图像:

关于如何使表单看起来一致,有什么建议吗


谢谢。

您有几个选择

首先,您可以覆盖helper,只需为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>
}

这也将使“文本”字段映射到
选项[String]
,而不是普通的
字符串。如果表单由case类(或其他映射逻辑)支持,则必须相应地对其进行更改

谢谢,我不得不添加一个自定义字段构造函数,但是教程似乎不太清楚如何命名文件以及在哪里放置一些东西。但我现在可以用了。谢谢。你能分享一下你是怎么做到的吗@zidarsk8我对播放文档也有同样的问题。这是一个非常笼统的例子,没有具体的例子来说明如何做事情。
   val taskForm = Form (
     "text" -> optional(text) // changed from 'nonEmptyText'
   )