playframework-2.0 – 表单验证和表单助手

playframework-2.0 – 表单验证和表单助手,第1张

概述我仍然在Play 2.0中使用表单验证和表单助手。我有这个登录屏幕,我与Twitter Bootstrap一起使用。所以我的登录表单如下所示: @helper.form(routes.Application.authenticate, 'class -> "form-horizontal") { <fieldset> <legend>@Messages("login")</lege 我仍然在Play 2.0中使用表单验证和表单助手。我有这个登录屏幕,我与Twitter bootstrap一起使用。所以我的登录表单如下所示:
@helper.form(routes.Application.authenticate,'class -> "form-horizontal") {    <fIEldset>    <legend>@Messages("login")</legend>            @if(loginForm.hasGlobalErrors) {                 <div >                <a  data-dismiss="alert">×</a>                    @loginForm.globalError.message                </div>            }            @if(flash.contains("success")) {                <div >                <a  data-dismiss="alert">×</a>                    @flash.get("success")                </div>            }            @inputText(loginForm("email"),'_label -> "Email")            @inputText(loginForm("password"),'_label -> Messages("login.password"))            <div >                <button type="submit" >@Messages("button.dologin")</button>                @Messages("or")                <a  href="routes.LandingPage.index">@Messages("button.doCancel")</a>            </div>                  </fIEldset>    }

而我的twitter bootstrap字段如下所示:

@(elements: helper.FIEldElements)@*************************************************** Generate input according twitter bootsrap rules ***************************************************@<div >    <label  for="@elements.ID">@elements.label</label>    <div >        @elements.input        <span >@elements.infos.mkString(",")</span>     </div></div>

这是输出:

我不明白的是:

1,为什么帮助文本全部显示(输入字段的右侧)

帮助文本来自@ elements.infos.mkString(“,”)。所以删除此行将删除帮助文本。或者你可以传递一个空字符串来抑制helptext可见:’_help – > “”

2,如果发生错误,如何仅显示帮助文本?

使用此代码时可以添加帮助文本:@ elements.errors(elements.lang).mkString(“,”)

3,传递给输入文本字段的可能参数是什么?我也想通过类的名字,但我不知道如何…

我可以定义我的自定义参数以传递(即类或占位符):class =“@ elements.args.get(‘_ class),然后我可以传递它:’_class – >”classname“

4,我可以在一个模板部分定义多个implicitFIEldConstructors吗?因为对于复选框,我想要另一个fIEldConstructor与输入框和textarea进行比较,但是怎么做呢?

示例:在计算机数据库示例中,定义了一个Twitter引导字段,但是使用如下:

@inputText(loginForm("email"),'_label -> "Email")

为什么这里的名字是inputText而不是输入?因为还有一个input.scala.HTML?

所以,如果我想为这个复选框做一个现场处理程序,怎么用?以下格式给我错误:

@checkBoxHandler = @{ FIEldConstructor(s2ftheme.constructors.checkBox.render) }@checkBox(loginForm("remember"),'_label -> Messages("login.remeberme"))(handler = implicitFIEldConstructor)

我收到错误信息:

not enough arguments for method apply: (implicit handler: vIEws.HTML.helper.FIEldConstructor,implicit lang: play.API.i18n.Lang)play.API.templates.HTML in object checkBox. UnspecifIEd value parameter lang.

我想我在这里错过了这个概念
谢谢。

解决方法 信息文本来自@ elements.infos.mkString(“,”)。要显示错误,您应该使用@ elements.errors(elements.lang).mkString(“,”)。

更改信息内容的正确参数将会有所帮助(这有点不一致,您必须阅读源代码才能实现),所以如果要使用内置的引导字段,但是抑制信息, _help – > “”。

编辑#4:

以下是您应该如何调用您的特定复选框:

@checkBox(loginForm(“remember”),’_label – >消息(“login.remeberme”))(handler = implicitFIEldConstructor,implicitly [Lang])

是的,@input意味着有一个名为input.scala.HTML的模板。这是所有输入助手的基本模板。

要理解为什么和如何工作,您应该深入Play 2.0和Scala(特别是隐含的参数)。

总结

以上是内存溢出为你收集整理的playframework-2.0 – 表单验证和表单助手全部内容,希望文章能够帮你解决playframework-2.0 – 表单验证和表单助手所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115709.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存