1

我对 Grails 和尝试 Ajax 还很陌生。在我查看的所有 remoteField 示例中,结果呈现到屏幕上的普通 div 区域。我有这个工作,但我希望控制器的结果更新 gsp 字段之一中的值。当我如下所示进行设置时,字段元素会消失并被纯文本替换。有没有办法识别特定字段?

<div id="thisOne" class="fieldcontain ${hasErrors(bean: orderItemInstance, field: 'total', 'error')} required">
    <label for="total">
        <g:message code="orderItem.total.label" default="Total" />
        <span class="required-indicator">*</span>
    </label>
    <g:field name="total" value="${fieldValue(bean: orderItemInstance, field: 'total')}" required=""/>
</div>

<div id="input" class="fieldcontain">
    <label for="input">
        Input field
    </label>
    <g:remoteField name="input" action="recalc" update="thisOne"/>
</div>
4

2 回答 2

0
<div id="thisOne">
</div>
<div id="input" class="fieldcontain">
    <label for="input">
        Input field
    </label>
    <g:remoteField name="input" action="recalc" update="thisOne"/>
</div>

在 _updateTotal.gsp 中

<div  class="fieldcontain ${hasErrors(bean: orderItemInstance, field: 'total', 'error')} required">
    <label for="total">
        <g:message code="orderItem.total.label" default="Total" />
        <span class="required-indicator">*</span>
    </label>
    <g:field name="total" value="${fieldValue(bean: orderItemInstance, field: 'total')}" required=""/>
</div>

在行动:

def recalc(){
.....
render(template:"updateTotal",....)
}

使用 ajax 时,我们更新 div 之前的值将消失。所以你把内容作为模板,这将是 div 的内容。

所以我把总字段放在一个模板中。在远程字段中调用的控制器操作将呈现模板。试试这样。

于 2013-10-23T04:43:29.183 回答
0

您可以尝试remoteFieldonSuccess的事件,例如

<div class="fieldcontain ${hasErrors(bean: orderItemInstance, field: 'total', 'error')} required">
  <label for="total">
    <g:message code="orderItem.total.label" default="Total"/>
    <span class="required-indicator">*</span>
  </label>
  <g:field id="thisOne" type="text" name="total" value="${fieldValue(bean: orderItemInstance, field: 'total')}" required=""/>
</div>

<div id="input" class="fieldcontain">
  <label for="input">
    Input field
  </label>
  <g:remoteField name="input" action="test2" onSuccess="jQuery('#thisOne').val(data)"/>
</div>

注意:- thisOne 现在是该字段的 id

于 2013-10-23T05:45:49.787 回答