在点击提交按钮后延迟提交表格数据?

时间:2014-06-05 15:11:41

标签: javascript php jquery forms

我差不多完成了我的网站,但我的最后一个问题是,我想在按下提交按钮后按下按钮上的Loading.gif'关注'。为此,我需要在延迟后提交表单数据。为了显示关于提交提交的loading.gif,我不需要帮助,只是为了延迟。

我尝试了不同的代码,但它们没有用。以下是所有代码:

带有提交按钮的我的表单标签:

<form id=followForm action="" method="POST"><input type="submit" name="follow" class="btn_id9 shadow rounded-min ptr" value="Follow User" style="width:100%" /></form>

这里是代码示例,它没有用:

    function formdelay(followform) { 
      $(function() {
        setTimeout(function() { $('#followForm').submit(); }, 2000);
      });
    }

我希望你们能帮助我,谢谢!

2 个答案:

答案 0 :(得分:0)

你需要做的是这样的事情:

$("#followForm input").click(function(e) {
    e.preventDefault();
    setTimeout(function() { $("#followForm").submit(); }, 2000);
});

关键是e.preventDefault()。此方法将停止单击提交按钮(在表单上提交)的默认行为。然后,您可以执行任何操作,然后手动提交表单,这是$("#followForm").submit();所做的。

演示:http://jsfiddle.net/DMcCr/2/

答案 1 :(得分:0)

这是一个有趣的问题。我首先想到的是做这样的事情:

http://jsfiddle.net/V9UpA/

$('#followForm').on('submit', function (event, force) {
    if (!force) {
        var $this = $(this);
        event.preventDefault();
        setTimeout(function () {
            $this.trigger('submit', true);
        }, 2000);
    }
});

基本上,您希望在初始提交事件上使用event.preventDefault(),然后是超时。超时完成后,您重新触发事件,但传递force参数,以便我们希望此次允许提交。