如何从Backbone.js中的View对象中获取当前模板中的所有元素

时间:2013-04-08 05:39:07

标签: javascript backbone.js

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

/*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;
        });
    }
  });

2 个答案:

答案 0 :(得分:2)

将渲染功能更新为

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

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

答案 1 :(得分:1)

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

saveData:function(){
var data=[];
this.$el.find('input').each(function(){
$input=$(this);
//build the array of [key, value]
data[$input.attr('id')] = $input.val();
}
});