.change () не запускается в IE 6,7,8 в DropDownList - JQuery - PullRequest
1 голос
/ 26 июля 2010

Я пытаюсь привязать событие изменения к выпадающему списку.Прекрасно работает в Chrome и FF, но не работает в IE.Я видел несколько других сообщений об этом, но они спрашивали о переключателях, и было предложено использовать .click (), который явно не работает для DDL.()?Что я делаю неправильно / как лучше это исправить?Требуется IE8, но было бы неплохо, если бы он работал и в IE7.

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

Ответы [ 3 ]

3 голосов
/ 27 июля 2010

Я также сталкиваюсь с этой проблемой ... Я вместо этого использую $ (). Click ...

Это то, что я сделал, чтобы он не срабатывал, как только я щелкнул по нему ..

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

Триггер будет выполнен, если пользователь действительно выберет в списке значение ...

Надеюсь, это поможет ...

0 голосов
/ 26 июля 2010

onchange на выпадающих списках глючит в IE .Лично я перешел на .click, и это сработало для меня в выпадающем списке.Но в комментариях jQuery к .change было предложение использовать:

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

или использовать .blur

Удачи!

0 голосов
/ 26 июля 2010

Обернули ли вы оператор 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 может занять больше времени для загрузки страницы, и страница может быть еще не готова.

...