代码之家  ›  专栏  ›  技术社区  ›  Jason

.change()在下拉列表-jquery上的IE 6、7、8中未触发

  •  1
  • Jason  · 技术社区  · 16 年前

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

    IE6、7、8是否不支持.change()?我做错了什么/什么是解决问题的最佳方法?IE8是要求,但如果它也能在IE7中工作,那就更好了。

           $('#<%=DropDownListFriends.ClientID %>').live('change', function() {
                if ($('#<%=DropDownListFriends.ClientID %>').val().length > 0) {
                   //DoStuff()
                }
            });
    
    3 回复  |  直到 16 年前
        1
  •  3
  •   Manie    16 年前

    我也遇到了那个问题…我使用$()。请单击…

    我这样做是为了它不会在我点击后触发。

     $("#dropdown").click(function() {
        if($(this).val() != "")
           // do something
     }
    

    如果用户真的在具有值的列表上选择了…

    希望有帮助…

        2
  •  0
  •   Wallace Breza    16 年前

    是否将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可能需要更长的时间来加载页面,而页面可能还没有“准备好”。

        3
  •  0
  •   Adam    16 年前

    onchange on dropdowns is buggy in IE . 就我个人而言,我切换到了。点击,这在下拉列表中对我很有用。但在 jQuery comments to .change 有人建议使用:

    $(element).change(function() { doChange(); }).attr("onchange", function() { doChange(); });
    

    或者使用模糊。

    祝你好运!

    推荐文章