Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从Backbone.js中查看对象的当前模板中获取所有元素_Javascript_Backbone.js - Fatal编程技术网

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

Javascript 如何从Backbone.js中查看对象的当前模板中获取所有元素,javascript,backbone.js,Javascript,Backbone.js,如何从backbone.js中视图对象中的当前模板中获取所有输入元素,以便检查输入元素中的值 /*template*/ <script id="emptemplate" type="text/template"> <input id="name" value="{name}"/> <input id="address" value="{address}"/> <input id="sex" value="{sed}"/> <footer&g

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

/*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;
        });
    }
  });
/*模板*/
拯救
/*javascript*/
var EmployeeView=Backbone.View.extend({
...
render:function(){
....
},
活动:{
单击“保存”:“保存数据”
},
保存数据:函数(e){
var数据=[];
$('input')。每个(函数(值、键){
/*我的问题是:
无法获取输入元素的值!
*/
var v=价值;
var k=键;
});
}
});

将渲染功能更新为

render: function(){
       var template = _.template( $("#emptemplate").html(), {} );
       this.$el.html( template );
}
那就试试。。。
它会将模板添加到视图的el中,然后您可以绑定并对其执行操作

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

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

你想在saveData函数中使用它们吗?谢谢你的回复,但我在“saveData”函数中遇到了问题,我正在尝试获取当前视图元素(输入)的值。是的,当你在渲染中执行此操作时,你可以访问所有输入字段,它将是元素的一部分。您还可以编写类似“saveData:function(e){var Data=[];this.$el.find('input')。每个(function(value,key){/*我的问题是:无法获取输入元素的值!*/var v=value;var k=key;});}”'或者在不更改savedata函数的情况下,它会检索字段,因为它将是视图的一部分。如果没有,则使用.find(),就像我在前面的注释中提交的代码一样