Jquery - 陷阱所有表单提交

时间:2015-07-11 09:57:40

标签: jquery forms submit

在我的网站上,我有多个包含表单的页面。每个表单都有自己独特的名称。

某些表单是使用标准HTML提交按钮提交的,有些使用jquery提交,有些使用简单的JavaScript函数提交,例如:

function form()
    {
    document.getElementById("form").submit();
    }

onchange="form()"

我想做的是随时提交表单。我很乐意将它输出到console.log,一旦我有了工作......

我希望通过Ajax将数据发送到新页面,然后将其写入磁盘。

有人可以建议如何做到这一点吗?

由于

1 个答案:

答案 0 :(得分:0)

您可以尝试覆盖DOM节点submit()方法并在submit级别绑定jQuery document事件,例如:

HTMLFormElement.prototype.submit = function () {
    $(this).submit(); // trigger jq submit handler
}

$(document).on('submit', 'form', function (e) {
    e.preventDefault();
    var data = $(this).serialize();
    console.log(this, data);
    // call any ajax method to submit data
    // >>>>
});

修改 如果您想保留提交form的默认行为,可以使用:

HTMLFormElement.prototype._submit = HTMLFormElement.prototype.submit;
HTMLFormElement.prototype.submit = function () {
    $(this).submit(); // trigger jq submit handler
}

$(document).on('submit', 'form', function (e) {
    e.preventDefault();
    var data = $(this).serialize();
    console.log(this, data);
    this._submit(); // call default prototype 'submit' method
    // or call it from any ajax callback method e.g 'success'
});