我不知道为什么会发生这种情况。这对我来说看起来很不寻常。 通常当我想成为一个按钮执行的操作单击我会用这个骨干点击事件没有触发
events:{
'click #button_name':'somefunction'
},
somefunction: function(){
alert("Blah");
}
但不幸的是,这是不工作对我来说。 ??
这里是我的js文件:
var AddDriverView = Backbone.View.extend({
initialize : function() {
this.render();
},
events: {
'click #addDriveBtn' :'loadDriver'
},
render : function() {
console.log("render");
var template = _.template(addDriverTemplate, {});
return template;
// this.$el.html(template ,{});
},
loadDriver : function() {
alert("Add Driver Data");
}
});
我的状态已经得到了很多的输入框,之后我的最终提交按钮就这样产生了
<input type="button" id="addDriveBtn" class="btn btn-default btn-large span12" `value="Add Driver" />`
在这个事件中,我想的点击一个警报弹出。任何想法我在这里做什么错误?我的html不是模板。我的html不是模板。这是一个小视图,将被渲染成主视图,其名称就像这样的“views.addDriver.html”。
并在js文件中呈现视图并且console.log起作用。
编辑 我改变了el:div而不是FORM,它完美的工作。
更新问题 我想表单中的所有数据移动到一个集合,任何帮助如何采取在表单中的数据转换成一个集合对象。
这里是我的尝试:
var formData = {};
$("#driverdata").children("input").each(function(i, el){
formData[el.id] = $(el).val();
});
console.log(JSON.stringify(formData));
该返回一个在我的Firefox和Chrome控制台“{}” ......
#addDriveBtn'是你的视图的孩子吗?如果不是,你的观点就不会听它发生的事件。你的渲染上的 – Andrew
尝试“返回这个”(你的视图)而不是“返回模板”; – jrsalunga
为什么你的'render'返回'template' HTML? jsfiddle.net或jsbin.com上的简单演示会很有帮助。 –