没有提交按钮保存数据表单的好方法是什么?
我有一个想法。下面是示例源代码。
var delay = 1000,
timeId,
ajax,
//fw is some framework
form = fw.get('myform');
form.getFields().on('change', changeEventHandler);
function changeEventHandler() {
clearTimeout(timeId);
timeId = setTimeout(this.ajaxRequest, delay);
}
function ajaxRequest() {
//What do with old ajax request? Abort it?
ajax = fw.ajax({
url: 'ololo',
params: {
data: form.getValues()
}
});
}
旧的ajax请求怎么办?中止了吗?
还有其他想法吗?
答案 0 :(得分:1)
在设计没有保存按钮的交互式表单时,我遇到了类似的问题。
首先,在每次更改时保存数据都不是一个好主意。我使用模糊事件,所以当输入失去焦点时,我检查值是否已更改(即不仅仅是输入上的焦点模糊),如果它已更改,我禁用输入并发送ajax请求。当请求返回时,我再次启用输入(如果ajax失败等可能会显示错误,等等,取决于您的需要)。
这是进行交互式表单的最简单方法。这样可以避免多次请求尝试修改服务器端的相同值以及监视所有ajax请求的麻烦。