使用输入骨干捕获表单提交事件

avi*_*vis 9 javascript backbone.js

我的backbone.js表单有一个文本字段(没有提交按钮).我需要在视图中捕获提交事件(使用enter键).下面是示例代码.不知何故,按Enter键不会调用submit方法.相反,表单用于重新加载.

脚本:

var FormView = Backbone.View.extend({
    el: '#form',

    events: {
        "submit": "submit",
    },

    initialize: function () {
        console.log("initialize");
    },

    submit: function (e) {
        e.preventDefault();
        console.log("submit");
    }
});

new FormView();
Run Code Online (Sandbox Code Playgroud)

HTML:

<form id="form">
  <input type="text"/>        
</form>
Run Code Online (Sandbox Code Playgroud)

kum*_*rsh 21

将其添加到您的Backbone视图:

events: {
  'submit form': 'submit'
}
Run Code Online (Sandbox Code Playgroud)

另请注意,在HTML中,必须定义表单操作.

如果您没有定义操作,请执行以下操作:

events: {
  'keyup': 'processKey'
}

processKey: function(e) { 
  if(e.which === 13) // enter key
    this.submit();
}
Run Code Online (Sandbox Code Playgroud)

  • 它实际上是'keyup' - 没有CamelCase :) (2认同)