![](/img/trans.png)
[英]Fire Jquery Event on Selection of Dropdown (Not Change of Dropdown Value)
[英]On change event on the selection of dropdown's value using underscore and backbone
我在模板中创建了动态下拉列表。 我的进一步要求是更改下拉菜单的值,然后将其发送回Web服务以更改系统中的值。 我不知道如何在下划线模板中执行此操作。 以下是我为动态下拉菜单编写的代码。 并且在哪里必须在模板文件或main.js中编写ratecall函数,对此一无所知。 现在,我只是发出警报,显示已启动更改,但未生效。 实际上即将到来的错误是ratecall未定义。 任何帮助将不胜感激。 提前致谢。
<select id="rate" onchange="ratecall()">
<% for(var i=0;i<post.scales-1;i++){
if(i==post.rated){
var a= 'selected';
}else{
a='';
}
%>
<option id="<%=i%>"<%=a %> > <%= i%></option>
<%}%>
</select>
<%}else{
}
function ratecall(){
document.getElementById("rate").onchange = function () {
alert("ON CHANGE FIRED");
};
}
正如@danblundell在评论中指出的,该视图仅应负责渲染。 我做了一个最小的骨干示例,以说明它是如何完成的(对于您的示例): http : //jsfiddle.net/dh64x/3/
骨干网提供了视图对象,您可以在其中指定事件和事件处理程序:
var PostView = Backbone.View.extend({
events: {
'change #rate': 'postSelected'
},
// ...
postSelected: function(e) {
console.log(e);
}
});
在这种情况下,select#rate元素上的change事件绑定到postSelected
函数。
阅读文档以获取更多详细信息: http : //backbonejs.org/#View
请尝试此代码。
<select id="rate" onchange="ratecall()">
<%
for(var i = 0;i < post.scales - 1;i++)
{
var a= ''
if(i==post.rated)
{
a = 'selected';
}
else
{
a = '';
}
%>
<option id="<%= i %>" <%= a %> > <%= i %></option>
<% } %>
</select>
<%
function ratecall()
{
alert("ON CHANGE FIRED");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.