Javascript 如何从Backbone.js中查看对象的当前模板中获取所有元素
如何从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
/*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(),就像我在前面的注释中提交的代码一样