我正在使用x-editable编辑页面上的多个字段。仅在通过单击保存按钮手动触发时,更改才会提交。
现在,当所有更改都已成功提交后,我只想执行一次特定的ajax请求。
这是我当前用于提交更改的代码:
$('#div').on('click', '#save-btn', function() {
$(".editable-unsaved" ).each(function() {
$(this).editable('submit', {
url: 'posturl.php',
success: function(data, config) {
this.removeClass('editable-unsaved');
//success handling
},
error: function(errors) {
//error handling
}
});
});
});
在x可编辑的文档页面上,有以下示例,该示例用于调用自定义函数以使用承诺来验证成功/错误来提交数据:
url: function(params) {
var d = new $.Deferred();
if(params.value === 'abc') {
return d.reject('error message'); //returning error via deferred object
} else {
//async saving data in js model
someModel.asyncSaveMethod({
...,
success: function(){
d.resolve();
}
});
return d.promise();
}
}
但是,我似乎无法弄清楚如何在.each
循环中使用它来跟踪成功的异步请求。我用不同的方法进行了测试,但没有一个起作用,很抱歉,我无法再为所有这些失败提供代码。如果有人甚至可以提供带有嘲笑的jsfiddle,我将非常感激。