jquery:在第一次使用表单时运行代码

jquery: run code on first use of a form

本文关键字:表单 运行 代码 第一次 jquery      更新时间:2023-09-26

我正在尝试运行一段代码,该代码每xxxx秒将一个表单的值存储到数据库中,只有当用户第一次使用该表单时才应该运行,所以我想为此使用一个基本的焦点事件,这很有效,但这意味着每次用户关注字段时,代码都会(再次)运行,但在xxxx秒之后不会运行。

因此,我需要一种方法,如果用户开始使用该表单,它应该每xxxx秒运行一次setInterval函数,而不是每次用户专注于某个字段。

//的基本示例

$('form').on('focus', 'input, textarea, select', function(){
    setInterval(function(){ 
        //run code into db
        alert('saved');
    },10000);
});

您可以使用一个:

$('form').one('focus', 'input, textarea, select', function(){
    setInterval(function(){ 
        //run code into db
        alert('saved');
    },10000);
});

但这将为每个元素执行一次,所以我担心最好的解决方案并不那么吸引人:

$('form').one('focus', 'input, textarea, select', function(){
    if ($(this.form).data('done')) return;
    $(this.form).data('done', 'yes');
    setInterval(function(){ 
        //run code into db
        alert('saved');
    },10000);
});

或:

var doit = function() {
    setInterval(function(){ 
        //run code into db
        alert('saved');
    },10000);
    $('form').off('focus', 'input, textarea, select', doit);
};
$('form').on('focus', 'input, textarea, select', doit);