我有一个记录表单:
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))
)
注意最后有两个全局验证器。只有当email
不为空并且格式有效且password
不为空时才应执行它们,因此我将其置于全局。
我想在Email doesn't exist
输入旁边显示email
,在Password incorrect
输入旁边显示password
,如何在视野中显示?
目前,我使用loginForm.globalError
,但它会在一个输入旁边显示它们。
@inputText(loginForm("email"), '_label->"Email:",
'_error->loginForm.globalError
)
@inputPassword(loginForm("password"), '_label->"Password:")
答案 0 :(得分:6)
@loginForm.globalError.map { error =>
<div>@error</div>
}
@inputText(loginForm("email"), '_label->"Email:")
@inputPassword(loginForm("password"), '_label->"Password:")
否则你必须做这样的事情:
'_error -> loginForm.error("email").orElse(globalError)
答案 1 :(得分:1)
我认为电子邮件约束应该在email
字段上定义,而不是全局定义。并且认为密码约束是全局的,因为它检查对(电子邮件,密码)。