2010-07-26 4 views
1

J'essaye de lier un événement de changement à une liste déroulante. Fonctionne bien en chrome et FF mais il ne tire pas dans IE. J'ai vu quelques autres messages à ce sujet, mais ils demandaient des boutons radio et la suggestion était d'utiliser .click(), ce qui ne fonctionne évidemment pas pour un DDL..change() non déclenché dans IE 6,7,8 sur DropDownList - JQuery

Est-ce que IE6,7,8 ne supporte pas .change()? Qu'est-ce que je fais mal/quelle est la meilleure façon de le réparer? IE8 est l'exigence, mais ce serait bien si ça fonctionnait dans IE7 aussi.

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

Pouvez-vous s'il vous plaît inclure une démonstration en direct? –

+0

Je suis confus. Vous avez dit que vous faites un changement, mais le code reflète un .click (Live ('clic' ...)) Pourriez-vous s'il vous plaît corriger le code et afficher l'extrait .change? – CogitoErgoSum

+0

Quelle version de jQuery utilisez-vous? – Adam

Répondre

3

Je rencontre également ce problème ... J'utilise $(). Cliquez sur la place ...

Ce que je l'ai fait pour que ce soit ne déclenche pas dès que je clique .. il

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

le déclencheur sera exécuté si l'utilisateur de sélectionner vraiment sur la liste qui a une valeur ...

Hope it helps ...

+0

Je ne l'aime pas. Mais cela fonctionne. Merci = D – Jason

+0

+1 mais 'if ($ (this) .val()! =" ")' Peut aussi être simplement 'if (! $ (This) .val())' car 'alert (!" ") 'Alerts' true' ... – Reigel

0

Avez-vous Enveloppez votre déclaration jQuery dans une fonction $(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 peut être plus long à charger la page et la page n'est peut-être pas encore "prête".

+0

Essayé cela ne fonctionne pas. – Jason

0

onchange on dropdowns is buggy in IE. Personnellement, je suis passé à .click et cela a fonctionné pour moi sur une liste déroulante. Mais dans le jQuery comments to .change il a été suggéré d'utiliser:

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

ou utiliser .blur

Bonne chance!

+0

.click ne fonctionne pas du tout. Dès que vous cliquez sur la liste, elle le déclenche. Cela ne vous permet pas de sélectionner quoi que ce soit. Fonctionne très bien pour les cases à cocher et les radiobuttons. – Jason

Questions connexes