当我输入保存时防止对单元格编辑进行两次保存调用
Prevent two save calls on cell edit when I enter for save
在 jqgrid 中两次调用保存单元格 url(一次是在 enter 的情况下,这是 jqgrid 的默认行为)其他是在 focusout 上自定义保存。
我需要防止在输入保存时对单元格编辑调用两次保存。
column.editoptions.dataEvents = [{
type: 'keyup focusout',
fn: function(e) {
var isValidate = ValidateGridEmail($(this).val());
EmailValidationMessage(isValidate);
if (e.type == "focusout" && isValidate && globalVar.irow != null && globalVar.icol != null) {
$("#GridEditConfiguration").saveCell(globalVar.irow, globalVar.icol);
globalVar.irow = null;
globalVar.icol = null;
}
}
}]
您可以使用一些事件来做到这一点,但我不确定 free-jqGrtid 是否有这些。这是不支持的版本。
在支持的 Guriddo jqGrid 中,您可以使用 beforeSaveCell 来表示开始保存,然后在您的条件下使用它。将 afterSubmitCell 中的信号设置回 false。
像这样:
var savestart = false;
$("#jqGrid").jqGrid({
beforeSubmitCell : function( id, name, val, irow,icol) {
savestart = true;
},
afterSubmitCell : function() {
savestart = false;
return [true,""];
},
....
});
在您的代码中添加这个
if (e.type == "focusout" && isValidate && globalVar.irow != null && globalVar.icol != null && !savestart) {
$("#GridEditConfiguration").saveCell(globalVar.irow, globalVar.icol);
...
}
您应该再次检查这些事件是否在 free-jqGrid 中可用
在 jqgrid 中两次调用保存单元格 url(一次是在 enter 的情况下,这是 jqgrid 的默认行为)其他是在 focusout 上自定义保存。
我需要防止在输入保存时对单元格编辑调用两次保存。
column.editoptions.dataEvents = [{
type: 'keyup focusout',
fn: function(e) {
var isValidate = ValidateGridEmail($(this).val());
EmailValidationMessage(isValidate);
if (e.type == "focusout" && isValidate && globalVar.irow != null && globalVar.icol != null) {
$("#GridEditConfiguration").saveCell(globalVar.irow, globalVar.icol);
globalVar.irow = null;
globalVar.icol = null;
}
}
}]
您可以使用一些事件来做到这一点,但我不确定 free-jqGrtid 是否有这些。这是不支持的版本。
在支持的 Guriddo jqGrid 中,您可以使用 beforeSaveCell 来表示开始保存,然后在您的条件下使用它。将 afterSubmitCell 中的信号设置回 false。
像这样:
var savestart = false;
$("#jqGrid").jqGrid({
beforeSubmitCell : function( id, name, val, irow,icol) {
savestart = true;
},
afterSubmitCell : function() {
savestart = false;
return [true,""];
},
....
});
在您的代码中添加这个
if (e.type == "focusout" && isValidate && globalVar.irow != null && globalVar.icol != null && !savestart) {
$("#GridEditConfiguration").saveCell(globalVar.irow, globalVar.icol);
...
}
您应该再次检查这些事件是否在 free-jqGrid 中可用