ここにあなたが試すことができるものがあります。あなたの目的が何であるかについてはまだ 100% ではありませんが、必要以上に複雑な角度から問題を解決しようとしているように感じます。
意見:
var EntryView = Backbone.View.extend({
/** Get the values from the view elements. */
serialize: function() {
return {
activity: this.$('.activity :selected').val(),
person: this.$('.person :selected').val(),
budget: this.$('.budget').val()
}
},
events:{
'change .test': 'changeActivity'
},
changeActivity: function(ev) {
/** Event is triggered when any of the select element changes. */
var entry = this.serialize();
console.log(entry);
}, ...
あなたのテンプレートでは、各要素に追加のクラスを追加して、それらを互いに区別しました。
テンプレート:
<script type="text/template" id="tpl_entries">
<% _.each(entries, function(entry) { %>
<tr>
<td>
<select class="activity test">
<% _.each(activities, function(activity) { %>
<option><%= activity.get('name') %></option>
<% }); %>
</select>
</td>
<td>
<select class="person test">
<% _.each(people, function(person) { %>
<option><%= person.get('name') %></option>
<% }); %>
</select>
</td>
<td>
<div class="input-append">
<input class="budget input-small" type="text"
value="<%= entry.get('budgeted') %>" /> ...
これが役に立ち、正しい方向に導くことを願っています。