Meteor应用程序中的event.preventDefault()不适用于Firefox?

时间:2016-11-18 14:52:55

标签: javascript jquery google-chrome firefox meteor

我正在关注Meteor教程:http://meteortips.com/first-meteor-tutorial/forms/

我有这个提交表格:

    'submit form': function() {
        event.preventDefault();
        var plname = event.target.playerName.value;
        var uid = Meteor.userId();
        playersList.insert({ name: plname, score: 0, 'createdBy': uid });
        event.target.playerName.value = '';
        return false;
    }

现在,这在Chrome中完美运行,在填写表单并点击Enter或点击按钮时添加了一个播放器:

http://meteortips.com/images/first-meteor-tutorial/forms/1.png

但是,这在Firefox for Linux中不起作用。虽然在Chrome中我没有看到页面重新加载,但在Firefox中显然会重新加载。未添加播放器。 Meteor服务器端日志不显示任何错误。 Firebug的控制台也没有显示任何错误。

这让我怀疑event.preventDefault();无效。

这是什么原因?

我该如何解决?

适用于Ubuntu Linux的Firefox,49.0.2

流星版1.4.2.3

节点:v4.2.6

2 个答案:

答案 0 :(得分:1)

Chrome和IE支持全局event对象,Firefox没有,因此您应始终使用event参数

'submit form': function(event) {
    event.preventDefault();
    var plname = event.target.playerName.value;
    var uid = Meteor.userId();
    playersList.insert({ name: plname, score: 0, 'createdBy': uid });
    event.target.playerName.value = '';
    return false;
}

答案 1 :(得分:0)

尝试在Template.addPlayerForm.events中添加submit事件,而不是Template.leaderboard.events。

代码:

Template.addPlayerForm.events({  
 'submit form': function(event){
     event.preventDefault();
     console.log("Form submitted");
     console.log(event.type);  
} 
});