如何使用remoteLink或remoteFunction调用操作,然后使用该操作在JavaScript函数中生成/返回的内容?只要我在JavaScript函数中放入一个参数来调用动作完成,就不再调用该函数,例如:
onComplete: 'processUpdate(e);' --or--
after: 'processAfter(e)'
然后,根本不再调用Javascript函数。 Fyi:整行代码是:
<g:select name="week" from="${strategyInstance.constraints.week.inList}" value="${strategyInstance?.week}" valueMessagePrefix="strategy.week" noSelection="['': '']"
onchange="${remoteFunction(action: 'produceUpdate', params: '\'update=\' + this.value', onComplete:'processUpdate(e);', before: 'alert("doing before")', after: 'processAfter(e)')}"/>
如果我从Javascript函数名中删除参数“e”,即:
onComplete: 'processUpdate();'
然后它调用该函数。如果我声明函数:
function processUpdate(e) {
alert('processUpdate: ' +e)
}
它会调用该函数,但会通过以下方式提醒我:
processUpdate: undefined
那么,使用Grails的人如何将操作产生的结果输入到Javascript函数中,然后可以使用该函数?
答案 0 :(得分:1)
xml-parsing机制中存在一个非常烦人的错误:只要在包含双引号的grails-tag中定义属性,并且标记本身使用双引号,就会忽略完整的属性定义。您的提醒使用双引号。试试:
<g:select name="week" from="${strategyInstance.constraints.week.inList}"
value="${strategyInstance?.week}"
valueMessagePrefix="strategy.week"
noSelection="['': '']"
onchange="${remoteFunction(
action: 'produceUpdate',
params: '\'update=\' + this.value',
onComplete:'processUpdate(e);',
before: 'alert(\'doing before\')',
after: 'processAfter(e)')}"/>
无论AJAX调用是否正常(成功和失败),都会调用 onComplete。如果要在成功案例中访问结果,请使用带参数onSuccess
的{{1}}:
data