【问题标题】:How to auto-submit(without clicking submit button) the form , 2 seconds after the user has typed in the data如何在用户输入数据后 2 秒自动提交(不点击提交按钮)表单
【发布时间】:2019-08-25 23:32:35
【问题描述】:

我想提交表单数据到数据库,用户在表单中输入数据后 2 秒

我正在使用 ajax 函数来完成此操作。但是按一个键时会提交表单

$('#eid').bind('input propertychange', function() {
  $.ajax({
    method: "POST",
    url: "intime2.php",
    data: { content: $("#eid").val() }
  }).done(function( msg ) {
    alert( "Data Saved: " + msg );
  });
});

当我在表单中输入员工 ID=12 时。我希望结果以 12 的形式存储在数据库中,但存储的结果是 1。在按 2 之前提交数据。我还希望每次连续提交时自动刷新表单。

我的目标:员工应该输入他们的员工ID(我要从读卡器中取出,但现在我喜欢使用超时功能)在输入表单后应该自动提交而无需他们按下提交按钮然后表单应该刷新,下一个员工应该输入他的员工 ID

【问题讨论】:

  • 出于这个原因,自动提交总是一个坏主意。你在提交之前延迟了多长时间?如果有人正在输入一个值并且中途停下来检查它并更正它会发生什么?那么您提交的值无效。如果有人快速打字而您延迟了 5 秒会发生什么?你让他们毫无理由地等待,这真的很烦人。我建议您按照标准做法使用按钮。
  • 我正在学习中。我喜欢在这段代码中添加超时功能。因此,在输入所需数据后,必须提交表单。谢谢
  • 在这种情况下研究setTimeout()。此外,bind() 已弃用,请改用 on(),并确保您使用的是最新版本的 jQuery。
  • 你能解释一下如何在代码中使用 on()
  • 查看文档:api.jquery.com/on

标签: javascript php jquery ajax


【解决方案1】:

使用 debounce 功能将表单数据提交到服务器

参考资料: Debounce function in jQuery https://davidwalsh.name/javascript-debounce-function

【讨论】:

  • 虽然这些链接可能会有所帮助,但最好将相关部分包含在您的答案中,因为链接可能会腐烂并且答案变得无用。另请注意,如果您认为此问题已在本网站的其他地方得到解答,请投票将其作为重复项关闭。
猜你喜欢
  • 2013-10-18
  • 2016-01-21
  • 2017-04-26
  • 2016-01-11
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
  • 2012-09-18
  • 2021-09-29
相关资源
最近更新 更多