1

如何从backbone.js中View对象的当前模板中获取所有输入元素,以便我可以检查输入元素中的值。

/*template*/

<script id="emptemplate" type="text/template">
<input id="name" value="{name}"/>
<input id="address" value="{address}"/>
<input id="sex" value="{sed}"/>
<footer>
   <button id="save">save</button>
</footer>
</script>

/*javascript*/

var EmployeeView = Backbone.View.extend({
  ...
  render:function(){
  ....
  },
  events:{
    "click #save": "saveData"
  },
  saveData: function (e) {
        var Data = [];
        $('input').each(function (value, key) {
            /*my problem here:
             cannot able to get the value of input element!
             */
            var v = value;
            var k = key;
        });
    }
  });
4

2 回答 2

2

将您的渲染功能更新为

render: function(){
       var template = _.template( $("#emptemplate").html(), {} );
       this.$el.html( template );
}

然后尝试...它会将模板添加到您的视图的 el 然后您可以绑定并对其执行操作

于 2013-04-08T05:49:11.243 回答
1

我想出了解决方案,迭代到当前视图中的所有输入元素以从中获取值。在用户单击保存按钮时的“saveData”事件处理程序中,如下所示:

saveData:function(){
var data=[];
this.$el.find('input').each(function(){
$input=$(this);
//build the array of [key, value]
data[$input.attr('id')] = $input.val();
}
});
于 2013-04-09T18:33:06.027 回答