2013-09-23 6 views
3

Я не уверен, почему это происходит. Это выглядит очень необычно для меня. Вообще, когда я хочу действие, которое должно быть выполнено на кнопку мыши я буду использовать этотсобытия с нажатием кнопки мыши не срабатывают

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 консоли ...

+0

Является ли '# addDriveBtn' ребенком вашего вида? Если это не так, ваше представление не будет прослушивать события на нем. – Andrew

+0

на вашем рендере попробуйте «вернуть это» (ваш взгляд), а не «шаблон возврата»; – jrsalunga

+0

Почему ваш 'render' возвращает HTML-шаблон? Простая демонстрация на jsfiddle.net или jsbin.com была бы полезна. –

ответ

4

Я согласен с Андреем - это событие будет получить привязано к вашему (el), поэтому кнопка должна находиться внутри вашего el, чтобы она срабатывала.

+0

Теперь, даже если я объявляю свой div как элемент el ... как это изменится? или как именно я позвоню .. – seshan

Смежные вопросы