我在<g:select>
文件中有.gsp
。但是,与任何普通的<g:select>
不同,如果满足某个条件,则该属性将具有disabled=""
属性。
遵循代码:
<g:select name="test"
from="${["foo1","foo2"]}"
<g:if test="${true}">disabled=""</g:if> />
它返回了一个错误:Grails tag [g:select] was not closed
但是当我把它改成这个时:
<g:select name="test"
from="${["mu1","mu2","mu3"]}"
${ if(true) { println "disabled=\"\"" } }/>
它返回了此错误:Attribute value must be quoted.
两个错误消息都在异常org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException
问题是我们怎样才能做到这一点?没有使用自定义TagLib,是否有可能的答案?
答案 0 :(得分:2)
GSP表单字段标记将disabled
视为布尔属性,因此您可以说
<g:select .... disabled="${true}" />
一般来说,你应该能够在通常的Groovy-truth规则下使用任何表达式,但我相信它为字符串“true”和“false”提供了一个特例(后者通常被视为true
下的Groovy-truth规则为非空字符串)。如果有疑问,你可以随时说
disabled="${(someExpression) as boolean}"
答案 1 :(得分:1)
<g:select disabled="${true}"...
很好,但是当你提交并且它是必填字段时,该值将不会被提交,因此在按下提交按钮时使用此jQuery代码启用该字段
$(function() {
$('form').on('submit', function() {
$(this).find(':disabled').removeAttr('disabled');
});
});