我使用e.preventDefault()提交的表单停止了。 (我也试过返回false)。使用e.preventDefault()后提交表单;
我会告诉手工的形式在短暂的延迟后提交,使用的代码:
$('form').delay(2000).submit();
不幸的是,e.preventDefault()似乎从,即使它使用submit()
明确提出禁止提交表单功能。
任何想法如何结合这些意图?我想显示加载屏幕几秒钟。
谢谢!
我使用e.preventDefault()提交的表单停止了。 (我也试过返回false)。使用e.preventDefault()后提交表单;
我会告诉手工的形式在短暂的延迟后提交,使用的代码:
$('form').delay(2000).submit();
不幸的是,e.preventDefault()似乎从,即使它使用submit()
明确提出禁止提交表单功能。
任何想法如何结合这些意图?我想显示加载屏幕几秒钟。
谢谢!
$("form").on('submit.blocker', function (e) {
setTimeout(function() {
$("form").off('submit.blocker').trigger('submit');
}, 2000);
e.preventDefault();
});
嗯..仍然不适用于我(使用Chrome,如果重要的话)。即使是最基本的实现,它也只会在我点击按钮两次时提交(因为'off('submit')'分离了原始处理程序)。任何想法为什么? – 2013-02-14 02:25:38
@ChrisNolet用一个可能的解决方案更新了我的答案:命名空间事件处理程序名称,所以只有这个特定的一个没有绑定 – 2013-02-14 02:29:43
奇怪...好吧,所以仍然不起作用。但有趣的是,即使是最基本的实现:$('#myform')。submit();'不起作用,然而'$('。submit')。click()'确实!所以问题在于,而不是e.preventDefault()代码。不知道为什么它发生。 – 2013-02-14 02:38:54
$('form').on('submit', function(e) {
if (!e.isTrigger) {
setTimeout(function() {
$("form").trigger('submit');
}, 2000);
e.preventDefault();
}
});
试试这个。
<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>
上面的代码已经过测试。
你可能想试试这个工作对我来说:
<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
}
我想'延迟()'仅用于特效,而不是事件。 – sevaor 2013-02-14 02:51:43