我如何阻止一个表单提交使用jquery?

我尝试了所有的方法——看看下面我尝试过的3种不同的方法,但都不起作用:

    $(document).ready(function() { 

            //option A
            $("#form").submit(function(e){
                e.preventDefault();
            });

            //option B
            $("#form").submit(function(e){
                stopEvent(e);
            });

            //option C
            $("#form").submit(function(){
                return false;
            });
    });

会有什么问题呢?

更新-这是我的html:

    <form id="form" class="form" action="page2.php" method="post"> 
       <!-- tags in the form -->
       <p class="class2">
           <input type="submit" value="Okay!" /> 
       </p>
    </form>

这里有什么问题吗?


当前回答

我也有同样的问题。你试过的我也试过。然后我改变我的方法不使用jquery,而是使用“onsubmit”属性在表单标签。

<form onsubmit="thefunction(); return false;"> 

它的工作原理。

但是,当我试图只在function()中放置假返回值时,它不会阻止提交过程,所以我必须放置return false;onsubmit属性。

其他回答

将事件附加到submit元素,而不是form元素。 例如,在你的html中这样做

$('input[type=submit]').on('click', function(e) {
    e.preventDefault();
});

防止提交表单数据后再发布。

  $("form").on("submit", function (e) {
   e.preventDefault();
   alert('Ok');
   $( this ).unbind( 'submit' ).submit(); // Release 
  });

它的工作

信息是缺失如何防止表单提交,然后恢复情况,即允许表单提交以后。

这里有一个例子:

var savebtn_clicked;

$('form#commentform').submit( function(e) {
    return savebtn_clicked;
});

$('#savebtn').click( function() {
    savebtn_clicked = true;
    $('#form#commentform').submit();
});

在我的例子中,每个按钮都会触发表单。通过上面的代码,我可以控制哪个按钮允许提交表单。

这似乎也有效,而且可能更简单:

$('#Form').on('submit',function(){
    return false;
})

$('#form')查找id="form"的元素。

$('form')查找表单元素