Rob*_*ell 12 java binding playframework
我正在使用Play的应用程序!Framework有一个名为gift的对象,带有一个名为Taken的布尔属性.如何在我的视图中将此值的状态显示为复选框?我试过了 :-
<input id="gift_Taken" class="" type="checkbox" name="gift.Taken" value="true" />
<input type="hidden" name="gift.Taken" value="false" />
Run Code Online (Sandbox Code Playgroud)
基于我从自动生成的CRUD表单中看到的示例,但是当属性为True时,不检查复选框,这正是我的目标.
有人知道实现这个目的的正确方法吗?
Jan*_*omä 12
接受的答案实际上并非100%正确,因为它没有处理"未经检查"的情况.要处理这两种情况,您需要一个隐藏字段:
<input id="gift_Taken" type="checkbox" name="gift.Taken" ${gift.Taken ? 'checked':''} />
<input type="hidden" name="gift.Taken" value="false" />
Run Code Online (Sandbox Code Playgroud)
请注意,展示位置似乎很重要,因此隐藏字段必须位于复选框之后.
为此编写自定义模板标记,可以轻松不忘记隐藏的输入(将其放入views/tags/checkbox.html):
<input id="${_id}" type="checkbox" name="${_name}" value="true" #{if _checked} checked="checked" #{/if}>
<input type="hidden" name="${_name}" value="false">
Run Code Online (Sandbox Code Playgroud)
然后像这样调用这个模板:
#{checkbox id:'gift_Taken', name: 'gift.Taken', checked: gift.Taken /}
Run Code Online (Sandbox Code Playgroud)
另请参阅有关播放框架列表的相关讨论:https://groups.google.com/forum/?fromgroups =#!topic / play-frame/HygQuYF3a8E
checked如果值为true,您只需要根据复选框设置值.
例如(假设调用从视图发送的对象gift,并调用布尔值Taken.
<input id="gift_Taken" type="checkbox" name="gift.Taken" ${gift.Taken ? 'checked':''} />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10330 次 |
| 最近记录: |