Forms 使用Play框架自动填充表单
我有一个包含一些值的表单。发布到服务器时,服务器验证信息,如果任何字段无效,则应返回已填写的表单 我目前的设置方式是这样的 我有一个表单可以验证两个字段Forms 使用Play框架自动填充表单,forms,scala,playframework,playframework-2.0,Forms,Scala,Playframework,Playframework 2.0,我有一个包含一些值的表单。发布到服务器时,服务器验证信息,如果任何字段无效,则应返回已填写的表单 我目前的设置方式是这样的 我有一个表单可以验证两个字段 val userForm = Form( mapping( "name" -> text, "age" -> number(min=0, max=100) )(User.apply)(User.unapply) ) 如果表单绑定失败,我将加载同一个表单,其中包含刚发布的值 def createItem(
val userForm = Form(
mapping(
"name" -> text,
"age" -> number(min=0, max=100)
)(User.apply)(User.unapply)
)
如果表单绑定失败,我将加载同一个表单,其中包含刚发布的值
def createItem() = IsAuthenticated {
username =>
implicit request => {
createExperienceForm.bindFromRequest().fold(
formWithErrors => BadRequest(
views.html.createItem(formWithErrors)
),
validForm => {
val itemCode = Item.createItem(validForm)
Redirect(routes.Item.item(itemCode).url)
}
)
}
}
问题是我必须在HTML页面中为每个表单手动设置值。如。
@(itemForm:Form[ItemContent])
虽然这样做有效,但在较大的表单上,它将变得容易出错。对于每个字段,我都需要直接设置值。是否可以自动填充这些字段?文档对此有所说明-向下滚动至“填充值”
val userForm=userForm.fill(User(“Bob”,18))
我不太清楚“自动填充”是什么意思。您可以使用诸如@inputText(createExperienceForm(“名称”),“_label->”name”)之类的标准播放帮助程序,它将自动设置字段的值,如果默认帮助程序的布局不符合您的需要,您可以随时覆盖它!尝试使用javascript
<input name="age" type="number" class="input-block-level" value="@itemForm.data.get("age")">