preventDefault在提交按钮中不起作用

时间:2014-02-17 19:00:20

标签: javascript jquery

我有html表单,当我点击submit按钮页面时会转到insert.php 我不喜欢它 preventDefoult不起作用 我有这个script HTML

HTML

<form action="insert.php" method="post">
<input  type="text" name="username" placeholder=""><br />
<input  type="text" name="name" placeholder=""><br />
<input  type="text" name="lastname" placeholder=""><br />
<input id="mail" name="email" type="text" placeholder="E-mail"><br />
<input id="mail_1" type="text" placeholder="reply E-mail"><br />
<input id="password" name="password" type="password" placeholder=""><br />
<input id="password_1"  type="password" placeholder=""><br /> 
<input id="submit" type="submit" value="registration">
</form>

jquery的

$("#submit").click(function(event){
    event.preventDefault();
});

5 个答案:

答案 0 :(得分:12)

您无需听取按钮点击,而是需要收听<form>提交:

$("form").submit(function(event){
    event.preventDefault();
});

现代jQuery(1.7或更高版本):

$("form").on('submit', function(event){
    event.preventDefault();
});

答案 1 :(得分:2)

我认为你错过了取消的活动

$( "#target" ).submit(function( event ) {
  event.preventDefault();

});

答案 2 :(得分:2)

问题是事件正在冒泡并且正在调用表单的提交事件。

您应该收听表单的click事件,而不是收听按钮的submit事件:

$("#formId").submit(function(event){
    event.preventDefault();
});

并在表单中添加id属性:

<form id="formId" ...

这应该可以阻止你的表格工作。

答案 3 :(得分:1)

首先在表单中添加ID,我将使用myFormId

<form id="myFormId"  action="insert.php" method="post">
    <input  type="text" name="username" placeholder=""><br />
    <input  type="text" name="name" placeholder=""><br />
    <input  type="text" name="lastname" placeholder=""><br />
    <input id="mail" name="email" type="text" placeholder="E-mail"><br />
    <input id="mail_1" type="text" placeholder="reply E-mail"><br />
    <input id="password" name="password" type="password" placeholder=""><br />
    <input id="password_1"  type="password" placeholder=""><br /> 
    <input id="submit" type="submit" value="registration">
</form>

然后使用表格Id:

$('#myFormId').on('click', function (event){ 
     event.preventDefault(); 
});

答案 4 :(得分:1)

对于将来潜伏在这里的任何人,我的问题是,表单在脚本之前没有加载,因此事件没有受到限制。所以我做了以下事情,我的问题得到了解决:

$(window).load(function () {
    $("#submit").submit(function (e) {
        e.preventDefault();
        ...
        ...
    });
}