我试图连接每个表单元素上的事件侦听器,然后检查是否提交。我不希望表单提交,而是等待1秒钟后才能提交。虽然表单已经提交,但我希望它能从表单中得到结果console.log()
。下面的代码应该工作,但它并不:延迟表单提交后的preventDefault()
$("form").each(function() {
$(this).on("submit", function(e) {
e.preventDefault();
var form = $(this);
setTimeout(function() {
form.submit();
}, 1000);
var data = $(this).serialize();
console.log(data);
});
});
我得到的问题是要么保持事件监听了,因此,它基本上运行到一个无限循环或不提交表单。我究竟做错了什么?
编辑:各位downvoting这样的:为什么呢?我知道我不应该为表单提交引入延迟,但是这是为我自己的项目而设计的,我等待一秒就完全可以。
我的意思是为什么?为什么你会让你的网站反应迟钝?这听起来像一个[XY问题(https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) – Liam
尝试区分提交你从你不要一个需要。 – jidexl21
@ jidexl21我需要点击页面上的每个提交,所以这不是一个选项。 – MortenMoulder