文本域与斯卡拉玩形式帮手
Scala表单助手并不像我预期的那样一致
@form(action = routes.Admin.insertNewArticle,'class -> "form-horizontal") { <fieldset> @textarea(field = articleForm("text"),args = 'rows -> 3,'cols -> 50) @input(articleForm("author"),"author") </fieldset> } 输入字段看起来非常好,左侧有标签,右侧有字段.但是textarea很奇怪,它没有包含在< div>中.带有标签,但它在< dl>中标签和底部有一个“必需”标志,我不知道如何删除. 以下是它的外观图像: 关于如何让表格看起来一致的任何提示? 谢谢. 解决方法
你有几个选择.
首先,您可以覆盖帮助程序,只需为textarea控件添加自己的手动HTML.这在“Using the form template helpers”下的文档“自己处理HTML输入创建”一节中描述,常见的陷阱在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的样式. < dl>标签只是一个definition list,可以像任何HTML列表样式.作为参考,您可以在github中找到默认的字段构造函数代码,它会显示生成的html的外观. 我假设你所说的“必需”标志是错误< dd>您可以在生成的HTML中看到标记.如果你没有使用手动滚动的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' ) 这也将使“text”字段映射为Option [String]而不是普通的String.如果您的表单由案例类(或其他映射逻辑)支持,则您必须相应地更改它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |