当用户单击提交按钮时-如何等待1秒再使用Javascript激活它?
我正在尝试集成一个API,它可以在用户每次单击提交按钮表单时工作。这是工作,除了API没有时间激活,因为我们直接重定向到另一个页面 所以,我在寻找一种方法,当用户点击按钮时,只有在1或2秒后才会出现重定向 我试过:当用户单击提交按钮时-如何等待1秒再使用Javascript激活它?,javascript,html,prestashop,Javascript,Html,Prestashop,我正在尝试集成一个API,它可以在用户每次单击提交按钮表单时工作。这是工作,除了API没有时间激活,因为我们直接重定向到另一个页面 所以,我在寻找一种方法,当用户点击按钮时,只有在1或2秒后才会出现重定向 我试过: submitButton.addEventListener("click", function() { submitButton.setAttribute("disabled", "disabled"); // Removes disabling after 2 secon
submitButton.addEventListener("click", function() {
submitButton.setAttribute("disabled", "disabled");
// Removes disabling after 2 seconds
window.setTimeout(function() {
submitButton.removeAttribute("disabled");
}, 2000);
},false);
但正如所料,使用该功能时,按钮根本不起作用。
从逻辑上讲,我应该在setTimeout函数中插入重定向或不重定向用户的函数
问题是:这是一个来自客户的prestashop网站,我没有这个功能的名称
如果你有任何想法…
谢谢大家!
附言:我在使用谷歌标签管理器,Jquery在上面不起作用 首先,
event.preventDefault()
将成为您最终选择的解决方案的朋友。这将阻止正常事件挂钩触发
您需要停止click事件实际执行它应该执行的操作,而不仅仅是将按钮标记为禁用。因此,preventDefault()
以下代码将阻止单击的发生
按照这些思路应该可以做到:
(function(){
// set flag to indicate whether we should wait or actually submit
var delaySubmit = true;
// get form el
var form = document.getElementById('#YourFormId');
form.addEventListener("submit", function(e) {
// if we've already waited the 2 seconds, submit
if( ! delaySubmit )
return;
// otherwise, stop the submission
e.preventDefault();
// set the flag for next time
delaySubmit = false;
// and resubmit in 2 seconds.
window.setTimeout(function() {
this.submit();
}, 2000);
});
})();
首先,
event.preventDefault()
将成为您最终选择的解决方案的朋友。这将阻止正常事件挂钩触发
您需要停止click事件实际执行它应该执行的操作,而不仅仅是将按钮标记为禁用。因此,preventDefault()
以下代码将阻止单击的发生
按照这些思路应该可以做到:
(function(){
// set flag to indicate whether we should wait or actually submit
var delaySubmit = true;
// get form el
var form = document.getElementById('#YourFormId');
form.addEventListener("submit", function(e) {
// if we've already waited the 2 seconds, submit
if( ! delaySubmit )
return;
// otherwise, stop the submission
e.preventDefault();
// set the flag for next time
delaySubmit = false;
// and resubmit in 2 seconds.
window.setTimeout(function() {
this.submit();
}, 2000);
});
})();
难道你不认为用户必须在完成API调用时被重定向吗?这是可能的吗?我是web开发的初学者,所以如果你有建议的话……我接受了:)你不认为用户在完成API调用时必须被重定向吗?这是可能的吗?我是一个网络开发的初学者,所以如果你有什么建议…我想:)我不知道这个函数…太好了,谢谢你!但是现在看起来表单没有正确重定向…它没有指示错误(密码丢失等),也没有在用户区域重定向用户/好的,我没有使用form.submit()事件,而是使用button.click()事件,它就工作了。再次感谢。:)@桑德拉,不客气!别忘了“接受”解决你问题的答案。我不知道这个函数…太好了,谢谢!但是现在看起来表单没有正确重定向…它没有指示错误(密码丢失等),也没有在用户区域重定向用户/好的,我没有使用form.submit()事件,而是使用button.click()事件,它就工作了。再次感谢。:)@桑德拉,不客气!别忘了“接受”解决你问题的答案。