Я не уверен, почему это происходит. Это выглядит очень необычно для меня. Вообще, когда я хочу действие, которое должно быть выполнено на кнопку мыши я буду использовать этотсобытия с нажатием кнопки мыши не срабатывают
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 не шаблон. Это небольшое представление, которое будет отображаться в главном представлении, а его имя - вот что такое «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' возвращает HTML-шаблон? Простая демонстрация на jsfiddle.net или jsbin.com была бы полезна. –