使用自定义HTML播放Scala表单助手

我正在使用以下代码在Play中创建表单:
@inputText(loginForm("password"),'type -> "password",'_label -> null)

它生成以下HTML代码:

<dl class=" " id="password_field">
<dt><label for="password"></label></dt>
<dd>
<input type="password" id="password" name="password" value="">

虽然我希望它生成:

<input type="password" id="password" name="password" value="">

有这么简单的方法吗?

解决方法

您可以通过创建自定义FieldConstructor来实现此目的(请参阅 http://www.playframework.com/documentation/2.3.x/ScalaCustomFieldConstructors).

创建一个包含以下内容的新文件views / helper / myPlainFieldConstructor.scala.html:

@(elements: helper.FieldElements)

@elements.input

[供参考,您可以看到默认的字段构造函数here.]

然后,在包含您的表单的视图模板中:

@import helper._
@implicitField = @{ FieldConstructor(myPlainFieldConstructor.f) }

[...]

@form(action = ...) {
  @inputPassword(loginForm("password"))
}

注意:如果您确实需要value =“”,则可以添加’value – > “”对帮助者的论点,即

@inputPassword(loginForm("password"),'value -> "")

或者使用通用输入助手进一步自定义HTML,如下所示:

@input(loginForm("password")) { (id,name,value,args) =>
    <input type="password" name="@name" id="@id" value="" @toHtmlArgs(args)>
}

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些