【问题标题】:textfield with scala play form helper带有 scala 播放表单助手的文本字段
【发布时间】:2015-07-24 13:19:04
【问题描述】:

Scala 表单助手与我预期的不一致

@form(action = routes.Admin.insertNewArticle, 'class -> "form-horizontal") {
  <fieldset>
    @textarea(field = articleForm("text"), args = 'rows -> 3, 'cols -> 50)
    @input(articleForm("author"), "author")
  </fieldset> 
}

input 字段看起来非常漂亮,左侧有标签,右侧有字段。但是textarea 很奇怪,它没有包裹在带有标签的&lt;div&gt; 中,而是在&lt;dl&gt; 标记中,并且在底部有一个我不知道如何删除的“必需”标志。

这是它的外观图片:

关于如何使表单看起来一致的任何提示?

谢谢。

【问题讨论】:

    标签: scala playframework playframework-2.0 textfield


    【解决方案1】:

    你有几个选择。

    首先,您可以覆盖帮助器,只为 textarea 控件放入您自己的手卷 HTML。这在“自己处理 HTML 输入创建”部分下的"Using the form template helpers" 下的文档中进行了描述,并且在here 中描述了常见的陷阱。如果你想要一个包含标签的 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 样式。 &lt;dl&gt; 标记只是一个 definition list 并且可以像任何 html 列表一样设置样式。作为参考,你可以在github中找到默认的字段构造函数代码,它向你展示了生成的html是什么样的。

    我假设您所说的“必需”标志是您可以在生成的 HTML 中看到的错误 &lt;dd&gt; 标记。如果您不采用手动 HTML 路线,那么要摆脱它,您需要定义自己的字段构造函数。我在上面链接到的 Play 帮助页面中也对此进行了描述。但是,如果您关心的只是消除错误,那应该很容易,只需复制默认字段构造函数代码(也在上面链接),然后更改或删除读取 @if(elements.hasErrors) {error} 的部分和三个以@elements.errors(elements.lang).map 开头的行。 “必需”错误本身来自@elements.infos...

    或者这个字段不是应该是必需的?这是表单定义的问题,而不是助手的问题。将表单中的“文本”字段设为可选,如“可选值”下的Scala Forms help page 所示。例如,如果您的任务定义在Application.scala

       val taskForm = Form (
         "text" -> optional(text) // changed from 'nonEmptyText'
       )
    

    这也将使“文本”字段映射到Option[String],而不是普通的String。如果您的表单由案例类(或其他映射逻辑)支持,则您必须相应地更改它。

    【讨论】:

    • 谢谢,我不得不添加一个自定义字段构造函数,但教程似乎很不清楚如何命名文件以及将一些东西放在哪里。但我现在可以正常工作了。谢谢。
    • 你能分享一下你是怎么做到的吗?!
    • @zidarsk8 我在播放文档时遇到了同样的问题。它非常随意和通用,没有具体的具体示例来说明如何做事。
    猜你喜欢
    • 2014-09-03
    • 1970-01-01
    • 2016-11-08
    • 1970-01-01
    • 2014-04-24
    • 2014-08-04
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多