6

好的,所以将 preventDefault 放在我的提交按钮上可以停止表单提交。这样做的结果是它不会告诉用户必填字段,而只是在按钮上执行点击事件。

将 preventDefault 添加到提交处理程序会向用户显示必填字段,但仍会触发与按钮相关联的单击事件。

我两个都需要。

<form action="" method="post">
  <input type="text" class="class" id="id" name="name" required="required" />
</form>

现在的js:

$("button").click(function(event){
  event.preventDefault();
  //performs function
});

无论所需的表单输入如何,这都会触发 click 事件。

$("form").submit(function(event){
  event.preventDefault();
});
$("button").click(function(){
  //performs function
});

这将向用户显示一条必需的消息,但仍执行提交按钮功能。我该怎么做?我查看了其他一些我可以找到的其他 SO 问题,但似乎大多数问题都可以通过将 preventDefault 添加到 form.submit 来回答。

4

2 回答 2

7

当我只需要做一件事时,我实际上是在尝试做两件事。

我根本不需要 button.click 函数,因为默认情况下它会提交表单。我只需要将 button.click 函数放在 form.submit 中。

$("form").submit(function(event){
    //perform button function
    return false;
});
于 2013-06-02T20:20:17.640 回答
0

手动触发提交事件。

$("button").click(function(event) {
     event.preventDefault();

     $('form').submit();
});
于 2013-06-01T06:24:04.330 回答