按钮单击仅在Firefox上提交表单

时间:2017-07-30 04:31:50

标签: javascript html

这个Meteor客户端代码有2个按钮,“CLEAR”按钮假设清除输入框,注意到以下行为:

1)Firefox浏览器; WindowsXP上的52.2.1和mac上的54.1,不清除输入框,而是调用clickInfo()

2)在以下浏览器上正常工作:
   a)Mac上的Chrome 59    b)Safari 10.2
   c)Android上的Chrome

代码需要能够通过单击/点击INFO按钮或按键盘上的ENTER键来调用clickInfo()

知道如何让CLEAR按钮清除所有浏览器的输入框吗? THX

Template.footer.events({
  'click #clear': () => {
    event.preventDefault();
    dict.set('busy', false);
    dict.set('prop1', '');
    let elem = document.getElementById('prop1');
    elem.value = '';
    elem.focus();
  },
  'click #info': function () {
    event.preventDefault();
    clickInfo();
  }
});
Template.body.events({
  'submit form': function (event) {
    event.preventDefault();
    clickInfo();
  }
});
<head>
  <title>myTitle</title>
  <link rel="apple-touch-icon" href="/appIcon.png"/>
  <link rel="apple-touch-icon-precomposed" href="/appIcon.png"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
  {{> header}}
  <div id="main">
    <div id="login-div">{{> loginButtons align='right'}}</div>
    <div id="content">
      <form>
        <button type="submit" style="display:none"></button>
        {{> content}}
        {{> footer}}
      </form>
    </div>
  </div>
</body>

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

1 个答案:

答案 0 :(得分:1)

像这样使用'submit form': function (e) {

使用 e 代替事件