如何在 Play! 中将复选框绑定到布尔值!框架

2024-03-05

我正在使用 Play 开发一个应用程序!框架有一个名为gift 的对象,它具有一个名为Taken 的布尔属性。如何在我的视图中将该值的状态显示为复选框?我试过了 :-

<input id="gift_Taken" class="" type="checkbox" name="gift.Taken" value="true"  />
<input type="hidden" name="gift.Taken" value="false" />

基于我从自动生成的 CRUD 表单中看到的示例,但是当属性为 True 时,不会选中该复选框,这正是我的目标。

有人知道实现这一目标的正确方法吗?


接受的答案实际上并不是 100% 正确,因为它不处理“未经检查”的情况。要处理这两种情况,您需要一个隐藏字段:

<input id="gift_Taken" type="checkbox" name="gift.Taken" ${gift.Taken ? 'checked':''}  />
<input type="hidden" name="gift.Taken" value="false" />

请注意,位置似乎很重要,因此隐藏字段必须位于复选框之后。

为此编写一个自定义模板标签,可以很容易地记住隐藏的输入(将其放入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">

然后像这样调用这个模板:

#{checkbox id:'gift_Taken', name: 'gift.Taken', checked: gift.Taken /}

另请参阅播放框架列表的相关讨论:https://groups.google.com/forum/?fromgroups=#!topic/play-framework/HygQuYF3a8E https://groups.google.com/forum/?fromgroups=#!topic/play-framework/HygQuYF3a8E

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Play! 中将复选框绑定到布尔值!框架 的相关文章

随机推荐