2012-11-03 63 views
2

这里是模板文件的一个片段:自定义播放Scala的形式不显示验证错误

@helper.form(routes.Signup.signupCont) { 
      @helper.inputText(signupForm("teamname")) 
        <div class="row"> 
         <div class="span2"><label class="label_form_email_signup">Team name</label></div> 
         <div class="span4"><input id="Signup_teamname" type="text" class="span4 input" maxlength="24" name="teamname"></div> 
        </div> 
} 

形式定义:

def signupForm = Form(
    mapping(
     "teamname" -> text(minLength = 4, maxLength = 30).verifying(
     "Name already in use.", teamname => Team.findByNameStrict(teamname).isEmpty), 
     "email" -> email.verifying(
     "Email already in use.", email => Team.findByEmail(email).isEmpty).verifying(
     "University email required", email => email.matches(""".*\.ac\.uk""")), 
     "password" -> tuple(
     "main" -> text(minLength = 6), 
     "confirm" -> text).verifying(
      "Passwords do not match.", password => password._1 == password._2))((teamname, email, password) => 
     (teamname, email, password._1))(data => Some(data._1, data._2, ("","")))) 

当使用错误的电子邮件并提交形式,例如,页面重新加载,但表单域是空的(所以解构器失败),并且电子邮件框旁边没有错误消息。如何实现这种行为?

回答

1

确保在渲染时将错误的表单传递给视图。例如:

signUpForm.bindFromRequest.fold (
    errors => { 
    /// assuming the page is signUp 
    BadRequest(views.html.signUp(errors)) 
    }, 
    info => { 
    // all ok, process the form 
    } 
) 
+0

这帮了我。谢谢。 – vicaba

相关问题