从提交执行脚本

时间:2016-11-09 19:17:09

标签: jquery html submit

当使用button时,这工作正常(加载器显示,直到加载页面):

<script>
    $(document).ready(function(){
        $(".loader").hide();
        $(".overlay").fadeOut(1000);

        $('button').click(function() {
            $(".loader").fadeIn("fast");
            $(".overlay").fadeIn(100);
        });
    }); 
</script>

但如果我使用Submit则不会:

我正在尝试以下工作:

<script>
    $(document).ready(function(){
        $(".loader").hide();
        $(".overlay").fadeOut(1000);

        $("form").submit(function() {
            $(".loader").fadeIn("fast");
            $(".overlay").fadeIn(100);
        });
    }); 
</script>

我也没有高兴地尝试过:

$(input[type="submit"]).click(function() {

我希望它适用于页面上的所有提交,因此不想使用ID。任何指针都非常受欢迎。

更新

$("form").submit(function(e) {

做了这个伎俩。

1 个答案:

答案 0 :(得分:3)

您必须阻止表单的默认行为,否则它将提交(并且浏览器将更改为下一页[表单中的操作])。

要停用submit操作,您需要在event.preventDefault()功能中使用submit/click

如果您确实需要提交表单 - 您可以添加一个变量来检查提交是否已被阻止,并根据这一点来阻止(或在submit函数中提交表单):

var submitPrevented = false;
$("form").submit(function(e) {
    if (!submitPrevented) {
        submitPrevented = true;
        e.preventDefault()
    }
    $(".loader").fadeIn("fast");
    $(".overlay").fadeIn(100);
    var that = this;
    setTimeout(function() {
        that.submit();
    }, 1000);
});
  

请注意,我将e元素作为参数添加到函数中。

关于您编写​​的最后一个代码 - 那里存在语法错误。这是正确的语法:

$('input[type="submit"]').click(function() {