动态本地源上的jqgrid自动完成

动态本地源上的jqgrid自动完成,jqgrid,autocomplete,Jqgrid,Autocomplete,我正在尝试使用“自动完成”进行表单编辑。。每次用户打开编辑表单时,其来源都不同 打开编辑表单时: beforeShowForm:function(frm){ var id=grid.jqGrid('getGridParam','selrow'); 如果(id){ var ret=grid.jqGrid('getRowData',id); AccCode=ret.szAccCode; }; $.post(“url_getchildren”,{szaccode:AccCode})。 完成(功能(数据

我正在尝试使用“自动完成”进行表单编辑。。每次用户打开编辑表单时,其来源都不同

打开编辑表单时:

beforeShowForm:function(frm){
var id=grid.jqGrid('getGridParam','selrow');
如果(id){
var ret=grid.jqGrid('getRowData',id);
AccCode=ret.szAccCode;
};
$.post(“url_getchildren”,{szaccode:AccCode})。
完成(功能(数据){
lschildcode=数据;
});
},
我已从服务器管理结果, 但我不能把它送到电网

colModel

{名称:'szAccParentCode',索引:'szAccParentCode',可编辑:true,编辑类型:'text',
编辑选项:{
dataInit:函数(elem){
$(elem).focus(函数(){
这是select();
}),
$(元素)。自动完成({
资料来源:lschildcode
})
}
}
},
为什么我不能将
lschildcode
传递到自动完成的源代码?每次我在框中输入时,autocomplete都会向服务器发送术语


TIA

我认为
dataInit
(以及
autocomplete
)将在
$的
done
之前被调用。post
将被执行

要解决此问题,您可以在
done
的内部调用
$(“#szAccParentCode”).autocomplete({source:lschildcode})


另一种方法:可以使用URL作为
source
的值。URL可以包含一些附加参数。如果需要使用HTTP POST,您可以将
声明为函数,并在
实现的
成功
完成
内调用
响应
参数(回调函数)。只需查看示例中
source
的实现,并检查代码(单击“查看源代码”)或检查
$.ajax
用法附近的jQuery UI Autocomplete的源代码(请参阅)

非常感谢@Oleg。。。我在$.postbtw中使用函数(data){$(“#szAccParentCode”).autocomplete({source:JSON.parse(data)})}在$.postbtw中单击编辑表单中的下一个/上一个记录时,源没有更改。。有什么建议我应该把这个函数放在哪里?