【问题标题】:Client-side form validation in play framework播放框架中的客户端表单验证
【发布时间】:2026-01-18 16:50:01
【问题描述】:

我想在我的表单中进行这种类型的验证

当用户提交空表单时,该字段应显示为红色。 我的 create.scala.html

@(signupForm: Form[models.Member])

@import helper._
@import helper.twitterBootstrap._

@main(Html("Create User")) {

    @form(action = routes.UserController.submit(), 'id -> "userCreationForm", 'class -> "form-horizontal", 'role->"form") {
        <fieldset>
           <legend><h1> Account Information</h1></legend>

<div class="form-group">
            @inputText(signupForm("firstName"),
            '_label -> "First name:",
            'class -> "form-control",
            '_help -> "Please enter your first name.")
            </div>

<div class="form-group">
            @inputText(signupForm("lastName"),
            '_label -> "Last name:",
            'class -> "form-control",
            '_help -> "Please enter your last name.")
            </div>

<div class="form-group">
            @inputText(signupForm("email"),
                        '_label -> "Email Address:",
                        'class -> "form-control",
                        '_help -> "Enter a valid email address.",
                        '_error -> signupForm.globalError)
                        </div>

<div class="form-group">
            @inputPassword(signupForm("password"),
                            '_label -> "Password:",
                            'class -> "form-control",
                            '_help -> "A password must be at least 6 characters.")
                            </div>
        </fieldset>

        <div class="form-group">
            <input type="submit" class="btn btn-primary" value="Sign Up">
            <a href="@routes.ApplicationController.index" class="btn">Cancel</a>
        </div>
    }

}

并将&lt;script src="@routes.Assets.at("javascripts/jquery-1.9.0.min.js")" type="text/javascript"&gt;&lt;/script&gt; 添加到我的ma​​in.scala.html

但它没有提供所需的输出意味着当用户提交空表单时不会显示红色的消息和字段 提前致谢。

【问题讨论】:

    标签: html validation twitter-bootstrap playframework


    【解决方案1】:

    Play 没有内置的前端表单验证解决方案,您需要使用一些 lib 即jQuery Validation Plugin

    您从示例表单应用程序中向我们展示的验证是一个后端 - 它在模型和/或表单中设置了约束,就像在User.java 模型中一样。 p>

    更多关于Forms documentation中的约束

    【讨论】:

    • 但在他们的表单中(在示例文件夹中)他们使用了这个属性,上图是表单应用程序中的 form.scala.html 并且他们在他们的 main.scala.html 中不包含任何其他文件
    • 这里\play-2.2.1\samples\java\forms
    • 向我的模型添加了约束,但我的表单仍然给出相同的输出