jQuery fadeout在.submit()

问题描述:

下面的代码是为了防止双击提交,它似乎工作。它可以防止双重提交数据,但是fadeOut不会被执行。有人知道为什么提交后,提交按钮,如果按下将导致fadeOut执行。jQuery fadeout在.submit()

$("#form1").submit(function() { 
    $("#form1Submit").click(function(event){ 
     event.preventDefault(); 
     $("#form1Submit").fadeOut("slow"); 
    }); 
}); 
+1

如果想法是为了防止双重提交,为什么在第一次提交表单时不淡出它,而不是在提交之后尝试点击它? – BenM 2013-03-04 12:59:19

淡出不是因为在提交#form1点击事件才会被绑定到#form1submit执行。第一次点击提交按钮时,表单被提交,然后事件被绑定。 (如果表单只是做回发,事件将永远不会被束缚由于页面刷新)

你可以简单的交换submitclick,一旦点击提交按钮,该按钮变淡,然后继续到表格提交。

$("#form1Submit").click(function(event) { 
    event.preventDefault(); 
    $(this).fadeOut("slow", function(){ 
     //Once button has faded, invoke the form submission 
     $("#form1").submit(); 
    }); 
}); 
+0

谢谢,现在它明显! – 2013-03-04 14:14:37