【问题标题】:Grails -Gsp - How to make Check-box checked based on the value of the fieldGrails -Gsp - 如何根据字段的值检查复选框
【发布时间】:2012-07-26 12:57:38
【问题描述】:

我的域中有一个名为 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 }" />

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

必须有一种方法来检查该值,即如果状态 = 已应用,则必须检查该特定复选框,否则应取消选中。

有什么办法吗?

【问题讨论】:

    标签: grails gsp


    【解决方案1】:

    使用checked 属性来控制复选框的状态,如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

    【讨论】:

      【解决方案2】:

      checkBox 的值应该是布尔值

      <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" }" />
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-22
      • 2012-01-09
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多