2016-11-18 10 views
0

私は流星のためのチュートリアルを次のようだ:http://meteortips.com/first-meteor-tutorial/forms/Meteorアプリのevent.preventDefault()がFirefoxで動作しないのですか?

私はこれを持っているフォーム提出のために:

'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; 
    } 

は今、これはプレイヤーがフォームを充填し、Enterキーを押すか、で追加され、Chromeで完璧に動作しますボタンをクリック:

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

しかし、これはLinux用のFirefoxでは動作しません。 Chromeではページリロードは表示されませんが、Firefoxでは明らかにリロードされます。プレーヤーは追加されません。流星のサーバー側のログにはエラーは表示されません。 Firebugのコンソールにもエラーは表示されません。

これは私には、event.preventDefault();が機能していないと思われることにつながります。

その理由は何ですか?

どうすれば修正できますか?

Firefox for Ubuntu Linux、49.0.2

流星版1.4.2.3

ノード:v4.2.6

+2

あなたは私はあなたの答えを受け入れるだろう – billyonecan

答えて

1

ChromeとIEは、グローバルeventオブジェクトをサポートしていますが、常に代わりTemplate.leaderboardのTemplate.addPlayerForm.events内部提出イベントを追加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; 
} 
+0

(これは、あなたが投稿チュートリアルで覆われている)関数に 'event'を渡す必要がありますが、イベントはそれ' undefined'作る省いていません?もしそうなら、なぜ 'event'メソッドを呼び出すのが' ReferenceError'を引き起こさないのですか? – LetMeSOThat4U

+0

そのスコープに 'event'という名前のものがあるかもしれませんが、一般的に' event'が定義されていないので、Firefoxでエラーが発生するはずです – adeneo

0

てみてくださいを使用する必要がありますので、Firefoxは、しません。イベント。

コード:

​​
関連する問題