2017-01-14 17 views
1

Enterキーを押すか、メソッドfooterInfoを起動している予想される動作の代わりに[info]ボタンをクリックしたときに、Meteorテンプレートがページを再読み込みしています。
ボタンがタップ/押されたとき、またはEnterキーが押されたときに、メソッドを起動する理由と方法は何ですか?あなたのコードで2個のformのタグを持っているので、THXjavascript - Enterキーでページを再読み込み

Template.content.events({ 
    'keypress input': function (evt, template) { 
    if (evt.which === 13) { 
     $("form").submit(); 
    } 
    }, 
    'submit form': function (event) { 
    event.preventDefault(); 
    footerInfo(); 
    } 
}); 

footerInfo =() => { 
    //do stuff 
}; 
<head> 
    <title>myApp</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
</head> 
<body> 
    <div id="main"> 
    <div id="login-div">{{> loginButtons align='right'}}</div> 
    <div id="content"> 
     <form> 
     <button type="submit" style="display:none"></button> 
     {{#if currentUser}} 
      {{#if isVerified}} 
      {{> content}} 
      {{> footer}} 
      {{else}} 
      <p>Check your email for your verification link!</p> 
      {{/if}} 
     {{/if}} 
     </form> 
    </div> 
    </div> 
</body> 

<template name="content"> 
    <form> 
    <input type="text" id="plateNum"> 
    {{> results}} 
    </form> 
</template> 

<template name="results"> 
    <p id="result">{{{display.alert}}}</p> 
</template> 

<template name="footer"> 
    <footer> 
    <button id="clear">CLEAR</button> 
    <button id="info">INFO</button> 
    </footer> 
</template> 

答えて

0

は問題があります。また、Enterキーを待ち受ける必要もありません。デフォルトでは、Enterキーを押すと、送信イベントが発生します。 contentテンプレートにkeypresssubmitイベントリスナーを削除し、そしてbodyテンプレートにsubmitイベントリスナーを追加

<template name="content"> 
    <input type="text" id="plateNum"> 
    {{> results}} 
</template> 

Template.body.events({ 
    'submit form': function (event) { 
    event.preventDefault(); 
    footerInfo(); 
    } 
}); 
この問題を解決するには、まず自分のコンテンツテンプレートで formタグを削除してみましょう
関連する問題