Javascript jqGrid在使用savekey时以不同的方式触发“更改”事件

Javascript jqGrid在使用savekey时以不同的方式触发“更改”事件,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我有一个jqGrid:1对行使用表单编辑;2在其中一个字段上有一个“更改”侦听器;并且,3使用onClickSubmit回调 如果我更改“位置”字段并单击提交按钮,“更改”事件侦听器将在单击提交之前触发 如果启用savekey,则更改“位置”字段并按Enter键。当代码手动关闭编辑表单时,onClickSubmit函数结束时,将触发“更改”事件侦听器 该字段的def列如下所示: {name:'location', index :'locatio

我有一个jqGrid:1对行使用表单编辑;2在其中一个字段上有一个“更改”侦听器;并且,3使用onClickSubmit回调

如果我更改“位置”字段并单击提交按钮,“更改”事件侦听器将在单击提交之前触发

如果启用savekey,则更改“位置”字段并按Enter键。当代码手动关闭编辑表单时,onClickSubmit函数结束时,将触发“更改”事件侦听器

该字段的def列如下所示:

        {name:'location',
            index       :'location',
            width       :120,
            editable    :true,
            edittype    :'text',
            editrules   : {required: true},
            editoptions : {
                size        : 40,
                maxlength   : 400,
                dataEvents  : [{
                    type: 'change',
                    data: { i: $("#grdLocationList").jqGrid("getGridParam")}, 
                    fn  : chC.query.onLocationChange
                }]
            }
        },
然后,我使用以下代码编辑该行:

                    $("#grdLocationList").jqGrid("editGridRow",
                        rowid,
                        {
                            onclickSubmit       : onclickSubmitLocal
//                          , savekey               : [true, 13]
                        }
                    );

是否有任何方法可以强制挂起的“更改”事件始终在调用我的onClickSubmit处理程序之前触发?

由于没有包含chC.query.onLocationChange的代码,因此问题还不完全清楚。你在里面做什么?为什么在单击SubmitLocal之前执行事件如此重要?为什么不能在onclickSubmitLocal回调中调用chC.query.onLocationChange或触发change事件?onLocationChange进行同步ajax调用,检索输入到位置字段的地址的lat/lon,并存储这些lat/lon以供onclickSubmitLocal回调期间使用。我确实尝试在onClickSubmitLocal中复制该ajax调用……但是由于更改事件最终触发,位置查找发生了两次。