event.preventDefault()在Chrome中工作,而不是Firefox用于提交按钮

red*_*ory 7 jquery

我有以下提交按钮:

 <input type="submit" name="submit" value="Send" class="mybutton" />
Run Code Online (Sandbox Code Playgroud)

当我使用以下代码时

$(document).ready(function(){
        $("#submit").submit(function(){
                event.preventDefault();
                console.log('test');
        }
});
Run Code Online (Sandbox Code Playgroud)

我的页面在Firefox中令人耳目一新,但不是Chrome.谁能指出我正确的方向?

我想使用提交按钮进行jQuery .ajax调用(不是常规表单提交)

Roc*_*mat 21

您需要确保添加event到事件函数的参数列表中.我认为某些浏览器具有全局性event,这就是它在某些浏览器中有效的原因.

$(document).ready(function(){
   $("#submit").submit(function(event){  // The event is passed to this function
      event.preventDefault();
      console.log('test');
   }
});
Run Code Online (Sandbox Code Playgroud)

  • 全局`event`对象(`window.event`)是微软的东西.Chrome会为为IE编写的代码抛出骨头.Firefox没有.:-) (4认同)

dye*_*awn 7

您是否尝试将事件作为变量传递?

$(document).ready(function(){
    $("#submit").submit(function(e){
            e.preventDefault();
            console.log('test');
    }
 });
Run Code Online (Sandbox Code Playgroud)

  • 这个答案让我投票使用不同于事件的变量名称,以表明没有必要将其称为事件. (3认同)