首页 > 解决方案 > 使用更新在 remoteFunction 后调整不同选择的值

问题描述

我希望在 onChange 中发生的远程函数之后更改“update”或“onSuccess”中单独的“g:select”的选定值。

普惠制代码:

<g:select name="mainSelect"
                                  id="mainSelect"
                                  from="${mainSelect}"
                                  value="${mSelect}"
                                  optionKey="key"
                                  optionValue="value"
                                  onchange="${remoteFunction (
                                            controller: 'mainController',
                                            action: 'checkValue',
                                            params: '\'value=\' + this.value + \'&value2=\' + otherSelect.value',
                                            onSuccess: '$("#otherSelect").val(data)',
                                  )}"
                                  noSelection="['': '']"/>
<g:select name="otherSelect"
                              id="otherSelect"
                              from="${notimportant}"
                              value="${notimportant2}"
                              optionKey="key"
                              optionValue="value" />

remoteFunction“checkValue”根据几个变量呈现“Y”或“N”,我已经将其注销,知道这绝对是它每次返回的内容。在此之后,我似乎无法更改下拉菜单。我的帖子没有返回任何错误,我只收到取决于 onSuccess 或更新中的内容的错误。

我尝试了多种方法,例如:

onSuccess: '$("#otherSelect").val(data)',

或者

update: 'otherSelect'

标签: jquerygrails

解决方案


http://docs.grails.org/3.0.0.M1/ref/Tags/remoteFunction.html

onSuccess (可选) - 成功时调用的 JavaScript 函数

只需要制作一个 JS 函数来插入 onSuccess,因为直接 Javascript 不想工作。而不是上面的 onSuccess:

onSuccess: 'functionForSelect(data)',

功能:

function functionForSelect(option)
{
  document.getElementById("otherSelect").value = option;
}

推荐阅读