无按钮保存数据表单

时间:2013-09-03 07:06:38

标签: javascript forms user-experience

没有提交按钮保存数据表单的好方法是什么?

我有一个想法。下面是示例源代码。

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请求怎么办?中止了吗?

还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

在设计没有保存按钮的交互式表单时,我遇到了类似的问题。

首先,在每次更改时保存数据都不是一个好主意。我使用模糊事件,所以当输入失去焦点时,我检查值是否已更改(即不仅仅是输入上的焦点模糊),如果它已更改,我禁用输入并发送ajax请求。当请求返回时,我再次启用输入(如果ajax失败等可能会显示错误,等等,取决于您的需要)。

这是进行交互式表单的最简单方法。这样可以避免多次请求尝试修改服务器端的相同值以及监视所有ajax请求的麻烦。