如何在不同的输入中显示表单的全局错误?

Fre*_*ind 6 forms validation playframework-2.0

我有一个用于记录的表单:

val loginForm = Form(tuple(
    "email" -> (nonEmptyText verifying email.constraints.head),
    "password" -> nonEmptyText
  )
   .verifying("Email doesn't exist", params => User.findByEmail(params._1) != None)
   .verifying("Password incorrect", params => 
       User.findByEmail(params._1).map(_.checkPassword(params._2)) == Some(true))
)
Run Code Online (Sandbox Code Playgroud)

注意最后有两个全局验证器.它们应该只在email不为空且格式有效password且不为空的情况下执行,所以我把它放在全局中.

我想Email doesn't existemail输入Password incorrect旁边显示,在输入旁边password,如何在视图中执行此操作?

目前,我使用loginForm.globalError,但它会在一个输入旁边显示它们.

@inputText(loginForm("email"), '_label->"Email:",
    '_error->loginForm.globalError
)
@inputPassword(loginForm("password"), '_label->"Password:")
Run Code Online (Sandbox Code Playgroud)

Mar*_*ier 6

恕我直言,全局错误应该保持全球,所以我把它放在你的输入之上:

@loginForm.globalError.map { error =>
  <div>@error</div>
}
@inputText(loginForm("email"), '_label->"Email:")
@inputPassword(loginForm("password"), '_label->"Password:")
Run Code Online (Sandbox Code Playgroud)

否则你必须做这样的事情:

'_error -> loginForm.error("email").orElse(globalError)
Run Code Online (Sandbox Code Playgroud)