我在表单提交中尝试setTimeout()
功能。但是,在执行该函数之前,表单将被提交,并且超时函数内的任何内容都不会被执行。以下是代码段。
$(window).load(function () {
$("#myform").submit(function() {
setTimeout(function(){
alert("me after 1000 mili seconds");
return false;
}, 1000);
});
};
请帮我解决这个问题...
答案 0 :(得分:3)
$(window).load(function () {
var submit = false;
$("#myform").submit(function(e) {
setTimeout(function(){
alert("me after 1000 mili seconds");
submit = true;
$("#myform").submit(); // if you want
}, 1000);
if(!submit)
e.preventDefault();
});
};
答案 1 :(得分:2)
表单正在提交。您需要委派默认操作。这应该适合你:
$(window).load(function () {
$("#myform").submit(function(e) {
e.preventDefault();
setTimeout(function(){
alert("me after 1000 mili seconds");
}, 1000);
});
});
请参阅此jsFiddle demo。
答案 2 :(得分:1)
如果要在表单上禁用提交操作,可以尝试:
$(window).load(function () {
$("#myform").submit(function(e) {
e.preventDefault();
setTimeout(function(){
alert("me after 1000 mili seconds");
return false;
}, 1000);
});
});
答案 3 :(得分:0)
首先,你忘记了在最后一行中的右括号)
$(window).load(function () {
$("#myform").submit(function(e) {
e.preventDefault();
setTimeout(function(){
alert("me after 1000 mili seconds");
return false;
}, 1000);
});
});
^---- here you forgotten to put brace.