我在渲染的模板中进行了以下选择,并在模型中传递了我。在大多数地方,$ {i} get被i的值代替。但是$ {i}不会在onchange事件中被替换。
所以,
<g:select class='setTagtypeValue-class'
name='tagtype-${i}-header'
from="${org.maflt.ibidem.Tagtype.list(sort:'tagtype').groupBy{it.tagtype}.keySet()}"
value="${setTagtypeValue?.tagtype?.tagtype}"
noSelection="${['null':'Select One...']}"
onchange="${remoteFunction(action:'options', update:'tagtype-options-${i}',
params:'\'tagtype=\' + this.value +\'&i=${i}\'' )}" />
被渲染为:
<select name="tagtype-0-header" onchange="jQuery.ajax({type:'POST',data:'tagtype=' + this.value +'&i=${i}', url:'/ibidem/metadataSet/options',success:function(data,textStatus){jQuery('#tagtype-options-${i}').html(data);},error:function(XMLHttpRequest,textStatus,errorThrown){}});" class="setTagtypeValue-class" id="tagtype-0-header">
<option value="null">Select One...</option>
<option value="abstract">abstract</option>
. . .
</select>
请注意,例如,名称已设置为“tagtype-0-header”,但是在onchange上,
data:'tagtype=' + this.value +'&i=${i}'
还要注意,当在创建过程中使用该模板时,如果替换发生在客户端,则一切都会按预期进行。因此,唯一的问题是在Edit期间,在服务器端正常工作期间,不会在onchange事件中替换$ {i}。
有任何想法吗?
最佳答案
由于您已经在${}
内部,因此内部${}
将被忽略。试试看:
<g:select class='setTagtypeValue-class'
name='tagtype-${i}-header'
from="${org.maflt.ibidem.Tagtype.list(sort:'tagtype').groupBy{it.tagtype}.keySet()}"
value="${setTagtypeValue?.tagtype?.tagtype}"
noSelection="${['null':'Select One...']}"
onchange="${remoteFunction(action:'options', update:'tagtype-options-' + i,
params:'\'tagtype=\' + this.value +\'&i=' + i + '\'' )}" />
关于select - $ {var}未在Select onchange事件中被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5835331/