Javascript JS/JQuery表单提交延迟
我试图延迟表单的提交,但只有在延迟后触发提交时,它才不会发送post值 这是我的htmlJavascript JS/JQuery表单提交延迟,javascript,jquery,forms,delay,Javascript,Jquery,Forms,Delay,我试图延迟表单的提交,但只有在延迟后触发提交时,它才不会发送post值 这是我的html <form id="form_anim" name="form" autocomplete="off" action="index.php" method="POST"> <input name="username" id="username" type="text" placeholder="Nome utente" autofocus required> <
<form id="form_anim" name="form" autocomplete="off" action="index.php" method="POST">
<input name="username" id="username" type="text" placeholder="Nome utente" autofocus required>
<input name="password" id="password" type="password" placeholder="Password" required>
<a href="#">Hai dimenticato la password?</a>
<input id="invio" name="invio" type="submit" value="Accedi">
</form>
请帮帮我。注意,如果您打算提交两次,确定吗
$('#form_anim').on('submit', function(event, force) {
if (!force) {
var $this = $(this);
setTimeout(function() {
event.preventDefault();
$this.trigger('submit', true);
}, 2000);
}
});
我建议您使用不带
type=“submit”
的按钮:
发送
$('#send')。在('click',函数(事件){
setTimeout(函数(){
$('form#u anim')。提交();
}, 2000);
});
尝试以下代码
它工作顺利
<form onsubmit="return delay('1')" id="form_anim" name="form" autocomplete="off" action="#" method="get">
<input name="username" id="username" type="text" placeholder="Nome utente" autofocus required>
<input name="password" id="password" type="password" placeholder="Password" required>
<a href="#">Hai dimenticato la password?</a>
<input id="invio" name="invio" type="submit" value="Accedi"/>
</form>
Javascript
<script>
function delay(a){
if(a == 1){
setTimeout(delay(2),2000);
return false;
}
else{
$("#form_anim").submit();
}
}
</script>
功能延迟(a){
如果(a==1){
设置超时(延迟(2),2000);
返回false;
}
否则{
$(“#表单动画”).submit();
}
}
这将有效地延迟提交您的表格
$('#form_anim').on('submit', function (e) {
var form = this;
setTimeout(function () {
form.submit();
}, 2000);
return false;
});
(顺便说一句,除非您想支持IE8及以下版本,否则您不需要jQuery)
监控您的网络(通过浏览器检查器)以查看其运行情况我可以问一下,您为什么要延迟它?为什么要提交两次
表单
?还有,什么是强制
?您不可能使用它。看起来您已经提交了表单……在定义它之前,您使用的是$this。首先防止默认值,而不是使用花哨的东西。在不知道什么是强制参数的情况下给出答案…是的,对不起,我复制了错误的代码;我想复制你刚刚发布的代码,但它不起作用;他发送了提交但没有post值问题是您每次都取消提交否,我用php检查,提交被触发,但$\u post中没有值。如果我在超时之前触发提交,它会正常工作,但显然没有延迟。如果你有解决方案,请告诉我,我正在尝试修复这个问题大约2小时。刚刚尝试。没有工作,但现在我知道问题不是延迟本身,而是.trigger(“submit”).$(“#form_anim”).trigger(“submit”),true);即使没有延迟,也不要发布值。如果我使用输入type=“submit”以正常方式提交表单,则会发送post值。
<script>
function delay(a){
if(a == 1){
setTimeout(delay(2),2000);
return false;
}
else{
$("#form_anim").submit();
}
}
</script>
$('#form_anim').on('submit', function (e) {
var form = this;
setTimeout(function () {
form.submit();
}, 2000);
return false;
});