Pra*_*A R 6 scala playframework
如何在play框架中隐藏文本字段?例如,如何隐藏此字段:
@inputText(userProfileForm("name"), '_label -> "Name")
Run Code Online (Sandbox Code Playgroud)
Aer*_*rus 22
这适用于所有浏览器:
@inputText(
userProfileForm("name"),
'_label -> "Name",
'style -> "display: none"
)
Run Code Online (Sandbox Code Playgroud)
请注意,这只隐藏字段,而不是标签等.
如果您还想隐藏标签,则无法使用默认帮助程序执行此操作.但是,您可以自己指定输入字段:
<input type="hidden" name="name" value="@userProfileForm.data.get("name")" />
Run Code Online (Sandbox Code Playgroud)
在name你的表单中的字段应该是名称(巧合的是name在藏汉这种情况下).
我还没有测试value,但它应该工作,也许你就需要剥离"周围name.
如果这样做,隐藏数据将与表单中的其他数据一起发送到服务器.
编辑:
如果隐藏值为空,则表示在调用视图时未将其绑定到表单.你可以在Java中将名称绑定到这样的表单(我不知道Scala,但是在Play Scala文档中对它进行了解释):
Map<String, String> data = new HashMap<>();
data.put("name","get the username here");
return ok(index.render(userProfileForm.bind(data));
Run Code Online (Sandbox Code Playgroud)
另一种选择(在我看来更干净)是简单地将用户名作为参数传递给视图.控制器变为:
return ok(index.render(userProfileForm, "username goes here"));
Run Code Online (Sandbox Code Playgroud)
在视图中,您可以简单地执行以下操作:
@(userProfileForm : Form[UserProfileForm])(name : String)
@helper.form(...){
<input type="hidden" name="name" value="@name" />
//...
}
Run Code Online (Sandbox Code Playgroud)
该inputText助手采用的可变参数(Symbol, Any),它代表了HTML属性.如果您使用的是html5,则可以添加隐藏属性:
@inputText(userProfileForm("name"), '_label -> "Name", 'hidden -> "hidden")
Run Code Online (Sandbox Code Playgroud)
通常该hidden属性没有值,但我找不到任何有关如何使用帮助程序执行此操作的信息.在Chrome中,至少它的工作方式也是如此.
编辑:
顺便说一句,你也可以使用html而不是帮助器:
<input attribute=value hidden />
Run Code Online (Sandbox Code Playgroud)