在此方案中调用阻止默认值

时间:2012-08-21 14:35:08

标签: javascript jquery forms

我希望在单击提交按钮后阻止提交表单。它应该捕获所有数据,但不能发送。

为了让它运转起来我有点挣扎,但无济于事。我已经尝试了以下所有方法,但没有。

function saveDetails(form){
    this.preventDefault();
}

function saveDetails(form){
    $(form).preventDefault();
}

function saveDetails(form){
    form.preventDefault();
}

我可以通过运行完美运行的$(form).serialize();轻松捕获数据。但上述内容不适用于停止提交操作。有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

您需要在event.preventDefault()上调用它。 preventDefault是DOM事件对象的方法。例如,您需要将一个处理程序附加到submit事件,该处理程序必须执行您需要的所有操作,但在其中您必须调用此方法

$('form').submit(function(e){
    saveDetails();
    e.preventDefault();
})

答案 1 :(得分:1)

在提交表单时执行的函数中,您需要传入event对象,jQuery将其传递给所有事件回调,然后在其上调用preventDefault(),例如:< / p>

function saveDetails(form, evt) {
  evt.preventDefault();
  var data = $(form).serialize();
  // etc
}

$("form").on("submit", function(evt) {
  saveDetails(this, evt);
});

或者简化一下:

function saveDetails(form) {
  var data = $(form).serialize();
  // etc
}

$("form").on("submit", function(evt) {
  evt.preventDefault();
  saveDetails(this);
});