我有一个表单,我停止使用e.preventDefault()提交。 (我也尝试过返回false)。
我会在短暂延迟后手动告诉表单提交,使用代码:
$('form').delay(2000).submit();
不幸的是,e.preventDefault()似乎禁止提交表单,即使它是使用submit()
函数明确提交的。
知道如何将这些意图结合起来吗?我想在几秒钟内显示加载屏幕。
谢谢!
答案 0 :(得分:2)
$("form").on('submit.blocker', function (e) {
setTimeout(function () {
$("form").off('submit.blocker').trigger('submit');
}, 2000);
e.preventDefault();
});
答案 1 :(得分:2)
试试这个。
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function ()
{
var okToSubmit = false;
$('form').submit(function (e)
{
if ( ! okToSubmit)
{
e.preventDefault();
var $form = $(this);
setTimeout(function ()
{
okToSubmit = true;
$form.submit();
}, 2000);
}
});
});
</script>
<form action="somewhere">
<input type="text" name="something" />
<input type="submit" />
</form>
以上代码经过测试。
答案 2 :(得分:1)
$('form').on('submit', function(e) {
if (!e.isTrigger) {
setTimeout(function() {
$("form").trigger('submit');
}, 2000);
e.preventDefault();
}
});
答案 3 :(得分:0)
您可能想尝试一下这对我有用:
<form name="demo" action="111" onSubmit="fun();return false">
<input type="text" name="name1" />
<input type="submit" />
</form>
并在javascript中
fun()
{
var x= document.forms["demo"];
setTimeout(x.submit(),2000);//time in milliseconds
}