$ {var}未在Select onchange事件中替换

时间:2011-04-29 17:34:03

标签: select grails onchange

我在我渲染的模板中有以下选择,在模型中传递i。 $ {i}取代了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 +'&amp;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>

请注意,例如,name已设置为“tagtype-0-header”,但在onchange中我正在

data:'tagtype=' + this.value +'&amp;i=${i}'

另请注意,在Create期间使用此模板时,子站在客户端发生,一切都按预期工作。所以唯一的问题是在编辑期间,在服务器端工作,$ {i}没有在onchange事件中被替换。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

由于您已经在${}内,因此内部${}将被忽略。试试这个:

<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 + '\'' )}" />
相关问题