Le feu de l'événement à chaque fois qu'un DropDownList élément est sélectionné avec jQuery
J'ai une liste déroulante: <asp:DropDownList id="dropdownid" runat="server" class=blah"/>
dans mon jQuery, je assigner événement de changement comme ceci:
$('#dropdownid').change(function() {......});
Maintenant, cela fonctionne lorsque je choisis une valeur différente à partir de la liste déroulante, cependant disons que je veux pour sélectionner la même valeur. (parce que je veux faire un autre appel avec la même valeur)
Donc, lorsque je sélectionne à nouveau, (sans modification de la valeur) juste en cliquant sur la valeur sélectionnée dans le menu déroulant et sélectionner " elle encore, aucun événement se déclenche.
Est-il un événement en jquery que j'ai à lui attribuer? quelle est la solution?
Vous devez vous connecter pour publier un commentaire.
Pour développer Vincent Ramdhanie de l' suggestion, jetez un oeil à faire quelque chose comme cela. Essentiellement, vous vous retrouvez avec votre propre fonction jQuery qui vous permettra de réutiliser ailleurs.
Étape 1: Créer la Fonction jQuery
Étape 2: assurez-vous que le nouvellement créé Fonction jQuery du fichier est référencé d'utilisation:
Étape 3: Utiliser une fonction nouvelle:
INFO D'ORIGINE
Avec votre code en cours, la sélection de la même valeur à partir de l'asp:DropDownList ne se déclenche pas l'événement de changement.
Vous pourriez essayer d'ajouter une autre fonction jQuery pour la .le flou de l'événement. Ce serait le feu lorsque le contrôle perd le focus:
Si ils flou ne fonctionne pas pour vous, je voudrais ajouter un bouton actualiser ou quelque chose qui influent sur les feux de la fonction que vous essayez d'utiliser.
click
événement..Essayez ceci:
Vous êtes d'abord créer une variable clicknum pour suivre le nombre de clics parce que vous ne voulez pas l'évènement qui se déclenche chaque fois que l'utilisateur clique sur la zone de liste déroulante. Le deuxième clic est le choix que fait l'utilisateur.
Si sur num arrive d'être à 2, alors c'est un deuxième clic pour que le feu de l'événement et de réinitialisation clicknum à 0 pour la prochaine fois. Sinon ne rien faire.
Simplement wireup cliquez sur les gestionnaires d'événements de la joint option contrôle au lieu de le sélectionner:
Cela se déclenche uniquement lorsque vous sélectionnez une option dans la liste déroulante, indépendamment de savoir si il change.
option
élémentSelon la API:
Vous pourriez vouloir essayer le mousedown ou cliquez sur événements comme une alternative.
Beaucoup de solutions actuelles se brisera dans beaucoup de situations. Une solution qui s'appuie sur la vérification sur nombre de fois va être très capricieux.
Certains scénarios à prendre en compte:
Voici une approche plus globale d'extension:
La plus robuste pour voir si une option a été choisie est d'utiliser le
modifier
événement, que vous pouvez manipuler avec jQuery.modifier()
gestionnaire.La seule chose restant à faire est de déterminer si l'élément d'origine a été sélectionné à nouveau.
Cela a demandé beaucoup (un, deux, trois) sans grande réponse dans n'importe quelle situation.
La chose la plus simple à faire serait de vérifier pour voir si il y avait un
click
oukeyup
de l'événement sur laoption:selected
élément MAIS Chrome, IE et safari ne semblent pas prendre en charge des événements suréléments, même s'ils sont dans le recommandation du w3c
À l'intérieur de la
Select
élément semble être une boîte noire. Si vous écoutez les événements sur elle, vous ne pouvez même pas dire sur quel élément de survenue de l'événement, ou si la liste est ouverte ou pas.La prochaine meilleure chose, puis, semble gérer la
blur
événement. Cela indique que l'utilisateur a mis l'accent sur le menu déroulant (peut-être vu la liste, peut-être pas) et pris une décision qu'ils voudraient pour coller avec la valeur d'origine. Pour continuer la manipulation des changements tout de suite, nous allons toujours vous abonner à lachange
événement. Et pour nous assurer de ne pas compter deux fois, nous allons définir un indicateur si le changement événement a été soulevée afin de ne pas le feu à deux reprises:Code:
Ensuite appeler comme ceci:
Mise à jour exemple dans jsFiddle
Découvrez cette solution:
http://ledomoon.blogspot.com/2009/12/dropdown-selected-change-event-by.html
Espère que cette aide
Ce problème que vous rencontrez est dû au client, de la gestion de la base de sélectionner le format HTML. Puisque la plupart des clients ne vont pas marquer un non changement, vous allez devoir essayer quelque chose de différent.
Je serais probablement ajouter un bouton "actualiser" ou quelque chose comme ça, mais je suis un développeur et non un designer, donc je suis probablement faux. 🙂
L'élément sélectionné d'une liste déroulante est là pour refléter un choix déjà fait.
Ma suggestion est de réinitialiser la liste déroulante à une valeur par défaut comme "Select...", chaque fois qu'une action requise est terminé. Donc, si le besoin de l'utilisateur à effectuer Une Action à deux reprises, la liste déroulante se réinitialiser après chaque action.
Espère que cette aide,
Riche
Pour moi, la solution suivante a bien fonctionné:
option
élémentAussi:
option
élément