在DropDownList --JQuery上的IE 6,7,8中没有触发.change()

时间:2010-07-26 18:38:09

标签: jquery internet-explorer firefox

我正在尝试将更改事件绑定到下拉列表。在chrome和FF中效果很好,但它在IE中不会触发。我看到了一些关于这个的其他帖子,但他们询问单选按钮,建议是使用.click(),这显然不适用于DDL。

IE6,7,8不支持.change()吗?我做错了什么/最好的解决方法是什么? IE8是必需的,但如果它在IE7中也能运行它会很好。

       $('#<%=DropDownListFriends.ClientID %>').live('change', function() {
            if ($('#<%=DropDownListFriends.ClientID %>').val().length > 0) {
               //DoStuff()
            }
        });

3 个答案:

答案 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

祝你好运!