Grails -Gsp - 如何根据字段的值检查复选框

时间:2012-07-26 12:57:39

标签: grails gsp

我的域名中有一个名为status的属性,String类型可以包含两个值中的任何一个Applied , NotApplied

我有两个复选框来输入此值。在我的编辑页面中,我想显示这两个复选框。

如果status的值为Applied,则必须选中相应的复选框。

我的代码

 <g:message code="publicRuleInstance.course.label" default="Applied" />
<g:checkBox name="status " value="${publicRuleInstance?.status }" />

<g:message code="publicRuleInstance.course.label" default="NotApplied" />
<g:checkBox name="status " value="${publicRuleInstance?.status }" />

但是这里选中了两个复选框。

必须有一种检查价值的方法,即如果状态=已应用,则必须提取相关的复选框,否则应取消选中。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:4)

使用checked属性来控制checkBox的状态,如docs中所述。 在这里,您可以添加任何表达式来确定g:checkBox的状态:

<g:message code="publicRuleInstance.course.label" default="Applied" />
<g:checkBox name="status " value="Applied" checked="${publicRuleInstance?.status == 'Applied'}"/>

<g:message code="publicRuleInstance.course.label" default="NotApplied" />
<g:checkBox name="status " value="NotApplied" checked="${publicRuleInstance?.status == 'NotApplied'}"/>

如果您只想允许其中一个值 - Applied NotApplied,则g:radioGroup将是更好的选择。使用复选框,用户可以选择值AppliedNotApplied

答案 1 :(得分:2)

checkBox的值应为boolean

<g:message code="publicRuleInstance.course.label" default="Applied" />
<g:checkBox name="status " value="${publicRuleInstance?.status =="Applied"}" />

<g:message code="publicRuleInstance.course.label" default="NotApplied" />
<g:checkBox name="status " value="${publicRuleInstance?.status == "NotApplied" }" />