【问题标题】:Prevent backbone event from firing防止主干事件触发
【发布时间】:2012-11-04 12:25:20
【问题描述】:

我有一个带有主干视图的基本表单,当我在顶部输入上按 enter 时,会触发 open 事件。如何确保 open 事件仅在我按下浏览按钮时触发?

<form method="post">
    <div>
        <input type="text" />
    </div>
    <div id="myId">
        <input type="text" />
        <button class="browse">Browse...</button>
    </div>
    <input type="submit" value="Save" />
</form>

var MyView = Backbone.View.extend({

    events: {
        'click button.browse': 'open'
    },

    open: function(e) {
        alert('Open dialog');
    },

    initialize: function() {},

    render: function() {}
});

$(function() {
    var myView= new MyView({ el: $('#myId') });
});​

​

jsFiddle here

【问题讨论】:

    标签: javascript javascript-events backbone.js


    【解决方案1】:

    您需要指定type="button",否则默认为submit,并且在表单中的文本框输入上按回车会触发提交...

    http://jsfiddle.net/PJhED/40/

        <button class="browse" type="button">Browse...</button>
    

    【讨论】:

    • 我想你误会了,如果你选择第一个输入然后按回车,open 事件就会被触发,我不希望这种情况发生。
    • @Marcus 啊我明白了。发生这种事很奇怪,让我想想。
    【解决方案2】:

    改成&lt;button class="browse" type="button"&gt;Browse...&lt;/button&gt;

    http://jsfiddle.net/2Rt6p/1/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多