在编辑表单中是一个选择下拉列表。当用户选择一个项目时,我想加载一些值并将它们填入表格中。
到目前为止我的代码:
var grid = $("#list").jqGrid({
parameters...,
colNames:[...],
colModel :[
...
]
});
$("#list").jqGrid(
'navGrid',
'#pager',
{
view:true,
edit:true,
del:true,
search:false,
},
/* EDIT */
{
closeAfterEdit: true,
afterSubmit: processAddEdit,
onInitializeForm: setFormEvents,
...
}
...
);
function setFormEvents(formid) {
/* It sometim works when using timeout..
* It seems to be a timing issue.
* But i have no idea why and how to solve
*/
setTimeout ( function(){
$('select#data_id', formid).unbind();
$('select#data_id', formid).change(function() {
$.getJSON("/URL?dataid=" + $('select#data_id option:selected').val(),
function(data){
$.each(data, function(i,item){
if (item.field == "anrede") { $("#anrede").val(item.value); }
else if (item.field == "titel") { $("#titel").val(item.value); }
else if (item.field == "vorname") { $("#vorname").val(item.value); }
else if (item.field == "nachname") { $("#nachname").val(item.value); }
else if (item.field == "firma") { $("#firma").val(item.value); }
else if (item.field == "strasse") { $("#strasse").val(item.value); }
else if (item.field == "hausnummer") { $("#hausnummer").val(item.value); }
else if (item.field == "plz") { $("#plz").val(item.value); }
else if (item.field == "ort") { $("#ort").val(item.value); }
else if (item.field == "land") { $("#land").val(item.value); }
});
});
});
}, 1000 );
}
答案 0 :(得分:1)
要将事件(例如您的change
事件)绑定到编辑字段,您应该使用editoptions的dataEvents
。请参阅here,here或here示例。此外,我建议您另外使用recreateForm:true选项。