我有一个包含一些值的表单。当 POST 到服务器时,服务器会验证信息,如果任何字段无效,则应该返回填写的表单。
我目前设置它的方式是这样的。
我有一个验证 2 个字段的表单。
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: 表单[ItemContent])
<input name="age" type="number" class="input-block-level" value="@itemForm.data.get("age")">
虽然这可行,但在较大的表单上会变得容易出错。对于每个字段,我需要直接设置值。是否可以自动填充这些字段?