【问题标题】:g:select disabled property doesn't work properlyg:select disabled 属性不能正常工作
【发布时间】:2018-09-27 01:12:11
【问题描述】:

在我的.gsp 中,我有一个下拉选择选项。

<g:select id="id"
          name="name"
          disabled="${model.x == MyEnum.X}"   //<--- note here
          from="${MyEnum.values()}"
          optionValue="naturalName"
          noSelection="['': '']"
          value="${model?.x}"/>

这部分生成的.html是这样的——

<select id="id" name="name" > //n <--- note here
    <option value=""></option>
    <option value="A" >A</option>
</select>

*注意:disabled 属性未生成!

但是如果我首先将 disabled 属性的逻辑和值放在变量中 -

<g:if test="${model.x == MyEnum.X}">
    <g:set var="disabled" value="true"/>
</g:if>

然后,使用disabled 属性中的变量 -

<g:select id="id"
          name="name"
          disabled="${disabled}"     //<------here
          from="${MyEnum.values()}"
          optionValue="naturalName"
          noSelection="['': '']"
          value="${model?.x}"/>

它按预期工作!我的意思是,在生成的.html 文件中生成disabled="disabled" -

<select id="id" name="name" disabled="disabled"> //n <--- here
    <option value=""></option>
    <option value="A" >A</option>
</select>

有人可以解释为什么.gsp 不能处理1'st 方法而是2'nd

这种不一致 行为吗

我说不一致,因为在这两种方法上我都做了同样的boolean 检查,但.gsp 在第二种方法上工作正常。

仅供参考:我的 grails 版本是 2.4.4

【问题讨论】:

    标签: grails drop-down-menu gsp disabled-input


    【解决方案1】:

    我尝试了类似以下的方法,效果很好:

    <div style="text-align: right;margin: 5px 10px;">
        State: <g:select name="state" from="${testapp.State.values()}" value="${testapp.State.HR}" disabled="${1==1}"/>
    </div>
    

    那么,您能否分享一个复制问题的示例应用程序?

    【讨论】:

    • sue,我会在github上创建一个示例项目并分享链接。
    • 好吧,创建一个单独的项目让我自己更清楚!问题是由于javascript 调用而发生的。 gspgrails 没有问题。感谢您对这个问题表现出兴趣。否则我会很想知道!
    • 很高兴您发现了问题。根据我的经验,大部分问题在隔离它们时都会消失。
    猜你喜欢
    • 2013-05-24
    • 2021-12-06
    • 2023-03-12
    • 2022-12-11
    • 2015-08-16
    • 2021-10-04
    • 2023-03-09
    • 1970-01-01
    • 2022-11-06
    相关资源
    最近更新 更多