Activer un Actuellement Désactivé Liste Déroulante en Cliquant sur la Liste Déroulante
Voici le scénario: j'ai deux boutons radio, 1) pour une normale de clients et 2) pour les partenaires d'affaires qui a également une liste déroulante de contrôle, de sorte que l'un de X nombre de partenaires d'affaires peuvent être sélectionnés. Quand un client type est sélectionné, l'autre partie est dans l'ombre avec la normale à la désactivation des contrôles et de l'application de CSS pour obtenir que les personnes handicapées look.
Ce à quoi j'aspire, c'est que lorsque le Bouton Radio, Étiquette à côté de lui et, dans le cas de l'Entreprise partenaire de la section, la liste déroulante, l'utilisateur clique sur est de cette section doivent être activées. Ce que je trouve est que lorsque le "Label de' est enroulé autour du bouton radio liste déroulante, qui a son attribut disabled=true via jQuery lorsque l'opposé de la section est activée, ce qui en fait en cliquant sur la liste déroulante n'est pas de permettre à cette section. Aussi l'événement de clic n'est pas déclenché pour la liste déroulante, ce qui je suppose est correcte, car son état désactivé est définie sur true. J'ai essayé d'utiliser à la fois l'événement click pour les boutons radio et les étiquettes, mais les handicapés liste déroulante qui semble être une gestion des événements du trou noir. Je suis à l'aide de jQuery et Asp.net MVC, mais je suis convaincu de la pertinence de, au moins, MVC dans ce cas.
Le bouton radio et cliquez sur l'étiquette de l'événement sera le feu à travers les handicapés dropdownlist dans IE7 mais pas Firefox3, ni les navigateurs Chrome.
Des idées?
<label for="CustomerRadio">
<input id="CustomerRadio" checked="checked"
name="usertype" type="radio"
value="Customer" />Customer
</label>
<label for="BusinessPartnerRadio">
<input id="BusinessPartnerRadio"
name="usertype" type="radio"
value="BusinessPartner" />Business Partner
<select id="businessPartnerType" name="businessPartnerType">
<option selected="selected" value="Builder">Builder</option>
<option value="InstallDealer">Install Dealer</option>
<option value="RepairDealer">Repair Dealer</option>
</select>
</label>
OriginalL'auteur MotoWilliams | 2009-03-08
Vous devez vous connecter pour publier un commentaire.
Vous avez tout à fait raison, les handicapés de la propriété tourne la boîte de sélection dans un trou noir. Même le navigateur, cliquez-droit sur Firefox menu contextuel ne fonctionne pas sur elle.
Semble que votre intention est de ré-activer la boîte de sélection lors de son étiquette de conteneur est cliqué, donc, est à l'état désactivé juste pour l'apparence du souci? .. Si oui, que si vous faites la boîte de sélection juste look désactivé à l'aide de CSS opacité?
Page de Test ici:
http://www.carcomplaints.com/test/motowilliams.html
Semble fonctionne bien dans FF3 & je devine que les navigateurs google Chrome. Malheureusement, dans IE7 (j'avais un nickel pour chaque fois que je l'ai dit), la boîte de sélection perd le focus instantanément si vous cliquez directement.. quelque chose d'interne à IE, liées à l'opacité de remplacement des filtres sur l'objet à sélectionner, il me semble.
Barre latérale ... malgré vos "personnes handicapées", sélectionnez boîte à question pour un moment: même si vous utilisez le "for=..." syntaxe sur vos étiquettes, je ne pense pas que c'est valable pour plusieurs éléments de formulaire dans une seule étiquette. Si elle est valide, peut-être tout simplement pas une bonne idée. L'idée est de cliquer n'importe où à l'intérieur de l'étiquette donne le focus à la forme liée de l'élément, donc, en théorie, votre boîte de sélection (qui est le 2ème élément de formulaire dans une étiquette) ne devrait jamais obtenir le focus. FF3 gère correctement - si vous essayez de votre code sans désactiver la case "sélectionner", vous verrez le problème.
Espère que ça aide. La div superposition suggérée par la première affiche pourrait être le chemin à parcourir. Je pensais juste essayer pour une solution de rechange à l'aide de votre code HTML, ajusté pour corriger que de multiples-forme de l'élément-par-étiquette problème.
Correct, je voulais seulement les personnes handicapées de la propriété pour l'aspect visuel. C'est le chemin que j'ai fini avec, qui permettent à l'événement click de continuer à travailler sur la liste déroulante. J'ai aussi "déballé" mon étiquette. Tout est comme prévu jusqu'à présent.
Cool. Belle prise au sujet des événements de clic & désactivé les éléments de formulaire. On dirait que ça été un ouvrir Mozilla bug depuis 2003 (!!) bugzilla.mozilla.org/show_bug.cgi?id=218093 bugzilla.mozilla.org/show_bug.cgi?id=190876 (dup de l'avant bug mais une description plus précise w/r/t à cette question)
OriginalL'auteur Wick
Essayer de positionnement transparent div sur le dessus de la forme des éléments (ce qui ne devrait pas être trop dur avec jQuery), et qu'div capturer votre clic de souris.
OriginalL'auteur David Hanak
Voici la solution que j'ai utilisée ici.
Fondamentalement, en cliquant sur un wrapper autour de les contrôles provoque la zone de sélection pour enabel et désactiver. Depuis des étiquettes à tout embrasser, pas de balises supplémentaires étaient nécessaires (autres que le script).
Je l'espère, que va faire l'affaire.
OriginalL'auteur Eric