我正在关注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或点击按钮时添加了一个播放器:
但是,这在Firefox for Linux中不起作用。虽然在Chrome中我没有看到页面重新加载,但在Firefox中显然会重新加载。未添加播放器。 Meteor服务器端日志不显示任何错误。 Firebug的控制台也没有显示任何错误。
这让我怀疑event.preventDefault();
无效。
这是什么原因?
我该如何解决?
适用于Ubuntu Linux的Firefox,49.0.2
。
流星版1.4.2.3
。
节点:v4.2.6
。
答案 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);
}
});