蒙国造博客

jQuery优雅Post提交

本功能实现:

  1. 禁用form原本提交方式;
  2. 自动获取action属性;
  3. 自动serialize数据;
  4. 提交状态显示到提示框,1.2秒提示框自动消失;
  5. 提交失败或错误,页面不跳转;
  6. 提交成功,跳转到指定页面。

HTML代码:

<form action="submit.php">
    <input name="title" value="" />
    <button type="submit">提交</button>
</form>

JavaScript代码:

$('form').submit(function(e) {
    e.preventDefault();
    var self = $(this);

    $.post(
        self.attr("action"),
        self.serialize(),
        function (result) {
            if (result.success) {
                sucess_prompt(result.msg);
                setTimeout(function () {
                    window.location.href = index.php;
                }, 1000);
            } else {
                fail_prompt(result.msg);
                return false;
            }
        },
        'json'
    ).complete(function(result) {
        var sqlError = result.responseText.indexOf('SQL');
        if (result.status == 200 && sqlError != -1) {
            fail_prompt('SQL错误:' + result.responseText, 3000);
            return false;
        }
    });
});

在PHP代码中,

其中,成功、失败提示框用到:JQuery定时自动消失提示框/弹出框

退出移动版