Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 使用Play框架自动填充表单_Forms_Scala_Playframework_Playframework 2.0 - Fatal编程技术网

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")">