我正在尝试将更改事件绑定到下拉列表。在chrome和FF中效果很好,但它在IE中不会触发。我看到了一些关于这个的其他帖子,但他们询问单选按钮,建议是使用.click(),这显然不适用于DDL。
IE6,7,8不支持.change()吗?我做错了什么/最好的解决方法是什么? IE8是必需的,但如果它在IE7中也能运行它会很好。
$('#<%=DropDownListFriends.ClientID %>').live('change', function() {
if ($('#<%=DropDownListFriends.ClientID %>').val().length > 0) {
//DoStuff()
}
});
答案 0 :(得分:3)
我也遇到了这个问题......我使用$()。点击而不是......
这就是我所做的,所以当我点击它时它不会触发..
$("#dropdown").click(function() {
if($(this).val() != "")
// do something
}
如果用户确实在列表中选择了值...
,则会执行触发器希望它有所帮助...
答案 1 :(得分:0)
您是否将jQuery语句包装在$(document).ready(...)
函数中?
$(document).ready(function()
{
// Add your change handler binding to here...
$('#<%=DropDownListFriends.ClientID %>').live('change', function() {
if ($('#<%=DropDownListFriends.ClientID %>').val().length > 0) {
//DoStuff()
}
});
});
IE可能需要更长的时间来加载页面,而页面可能还没有“准备就绪”。
答案 2 :(得分:0)
onchange on dropdowns is buggy in IE。就个人而言,我切换到.click,这对我来说是一个下拉列表。但是在jQuery comments to .change中有一个建议要使用:
$(element).change(function() { doChange(); }).attr("onchange", function() { doChange(); });
或使用.blur
祝你好运!