主干点击事件未触发

时间:2013-09-23 14:56:26

标签: javascript backbone.js backbone-views backbone-events

我不确定为什么会这样。这看起来很不寻常。 通常,当我想要在按钮上执行操作时,我将使用此

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");
    }
});

My Form有很多输入框,之后我的最终提交按钮就像这样

    <input type="button" id="addDriveBtn" class="btn btn-default btn-large span12" `value="Add Driver" />`

点击此事件后,我想要弹出警报。知道我在这做什么错吗?

注意:我的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控制台中返回了“{}”...

1 个答案:

答案 0 :(得分:4)

我同意安德鲁 - 事件将被绑定到您的视图元素(el),因此按钮必须位于您的内部以便触发