javascript - 当我输入保存时,防止在单元格编辑时进行两次保存调用
问题描述
两次调用 jqgrid 中的保存单元格 url(一次是在输入的情况下,这是 jqgrid 的默认行为),另一种是在焦点输出时自定义保存。
当我输入保存时,我需要防止对单元格编辑进行两次保存调用。
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 中可用
推荐阅读
- typescript - 如何为 TypeScript 中类的所有属性赋值?
- excel - 在 Excel 中合并两个表
- json - 将 MongoDB json 文件加载到 Google 大查询中时如何转换数据类型?
- sql - 多个 id 的公差范围内的最接近值
- c# - 创建异步任务队列 - 使用 BlockingCollection C#
- java - 您不能自动装配所谓的简单属性,例如基元、字符串和类
- javascript - 在节点上的函数内部运行方法
- ios - 自动布局中的相对中心
- python - 在不同字段中创建具有日期时间的数据框
- django - AttributeError:模块'django.http.request'没有属性'session'