我如何阻止一个表单提交使用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属性。

其他回答

当我使用<form>标签没有属性id="form",并直接在jquery中调用它的标签名称时,它与我一起工作。 你的代码在HTML文件:

<form action="page2.php" method="post">

Jquery脚本:

$(document).ready(function() {
      $('form').submit(function(evt){
          evt.preventDefault();// to stop form submitting
      });
 });

有两点很突出:

有可能您的表单名称不是表单。而是指 删除#。 同样,e.r epreventdefault也是正确的JQuery语法。 / /选择一个 $(“形式”)。submit(函数(e) { e.preventDefault (); });

选项C也应该有效。B选项我不熟悉

一个完整的例子:

<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

        <script type='text/javascript'>
         $(document).ready(function() {
            //option A
            $("form").submit(function(e){
                alert('submit intercepted');
                e.preventDefault(e);
            });
        });
        </script>
    </head>

    <body>
        <form action="http://google.com" method="GET">
          Search <input type='text' name='q' />
          <input type='submit'/>
        </form>
    </body>
</html>

防止默认/防止表单提交使用

e.preventDefault();

停止事件冒泡使用

e.stopPropagation();

为了防止表单提交“返回错误”也应该工作。

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

从这里开始:https://api.jquery.com/submit-selector/(关于提交类型的有趣页面)

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

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