在暂停打字期间自动将输入框保存到数据库?

2024-03-28

我的网站上有一个大表单,我希望能够在用户填写表单时自动保存到数据库。几乎与谷歌驱动器在输入文档时的工作方式相同。

我试图不让一个函数每 X 秒运行一次,而是让一个函数在用户打字休息时运行。因此,如果用户在 1 小时内没有输入内容但仍在页面上,则不会继续推送保存请求。

到目前为止,这就是我所拥有的全部内容,这是一个基本的 javascript 表单提交。

$("#page1Form").submit(function(event){
  event.preventDefault();  
  $changesSaved.text("Saving...");
  var url = "/backend/forms/page1-POST.php";
        $.ajax({
         type: "POST",
         url: url,
         data: $("#page1Form").serialize(),
         success: function(data) { $changesSaved.text(data); }
        });
  return false;
  });

对文本区域更改进行反跳。

Demo: jsFiddle http://jsfiddle.net/MadLittleMods/2LG8f/

将您的 ajax 调用放入saveToDB()功能。这些事件名称('input propertychange change') 将在任何表单元素更改时触发,例如单选按钮、输入等。

var timeoutId;
$('#the-textarea').on('input propertychange change', function() {
    console.log('Textarea Change');

    clearTimeout(timeoutId);
    timeoutId = setTimeout(function() {
        // Runs 1 second (1000 ms) after the last change    
        saveToDB();
    }, 1000);
});

function saveToDB()
{
    console.log('Saving to the db');    
}

这是一个完整的演示,向您展示如何对完整表单进行反跳并使用 ajax 发送数据,然后返回状态(正在保存、已保存等)。

演示完整形式和ajax:jsFiddle http://jsfiddle.net/MadLittleMods/NxQ4A/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在暂停打字期间自动将输入框保存到数据库? 的相关文章

随机推荐