0

我需要将 remoteFunction 指令与多项选择一起使用。选择如下:

<g:select name="receiptItems" from="${myproject.ReceiptItem.list()}"
     multiple="multiple" optionKey="id" optionValue="description" size="5"
     value="${receiptInstance?.receiptItems*.id}" class="many-to-many"
         onchange="${remoteFunction(
            controller: 'Receipt',
            action: 'sumReceiptItems',
            params: '\'receiptItemsSelected=\' + this.value',
            onSuccess: 'updateTotalAmount(\'totalAmount\', data, \'00000\')')}"/>

sumReceiptItems在 Receipt 控制器中有一个动作,它接受参数receiptItemsSelected并使用它来更新另一个文本字段。

问题是它只this.value给了我一个选定的值,即最后一个 selected。我需要将选择中的所有选定值传递给控制器​​。我该怎么做?

感谢您的宝贵帮助

4

2 回答 2

1

只需使用jQuery 的 val()而不是this.value,这将获得所有选定的项目:

params: '\'receiptItemsSelected=\' + jQuery(this).val()'

请注意,如果您尚未在项目中使用 jQuery,则必须导入它。如果您使用的是最新的 Grails 版本,您可以<r:require module='jquery' />在本节中简单地使用。<head>

于 2013-06-14T16:16:18.750 回答
0

您可以使用 JQuery 来获取值:

var selections = new Array();

$("#receiptItems").change(function() {
   var value = $(this).val();
   selections[selections.length] = value;
});

您可以将值添加到全局定义列表。这样你就得到了所有的选择。

于 2013-06-16T14:05:20.930 回答