J'essaie d'ajouter un événement côté client à une liste déroulante et j'ai besoin d'accéder au texte actuellement sélectionné. J'ai essayé:Obtenir le texte vaule du côté client dropdownlist
ddl_tech.Attributes.Add("onclick", "document.getElementById('" + chk_techreview.ClientID + "').disabled = this.options[this.selectedIndex].text.Equals(' UNASSIGNED');");
et
ddl_tech.Attributes.Add("onclick", "document.getElementById('" + chk_techreview.ClientID + "').disabled = this.text.Equals(' UNASSIGNED');");
deux qui me donne l'exécution des erreurs lorsque l'événement est déclenché.
Quel est le moyen correct d'accéder à ce côté client de la propriété text?
J'ai essayé, mais il ne permet pas la case à cocher ...
ddl_tech.Attributes.Add("onchange", "document.getElementById('" + chk_techreview.ClientID + "').disabled = this.options[this.selectedIndex].text == ' UNASSIGNED';");
RÉPONSE:
Eh bien, ainsi que d'avoir à utiliser == plutôt que Equals, lorsque vous définir une checkbox.enabled = false du côté serveur, elle coche la case à cocher dans les balises et la définit sur disabled = true; Par conséquent, vous devez définir à la fois checkbox.disabled = false et checkbox.parentElement.disabled = false; côté client pour activer la case à cocher!
La solution:
ddl_tech.Attributes.Add("onchange", "document.getElementById('" + chk_techreview.ClientID + "').parentElement.disabled = (this.options[this.selectedIndex].text == 'UNASSIGNED'); document.getElementById('" + chk_techreview.ClientID + "').disabled = (this.options[this.selectedIndex].text == 'UNASSIGNED');");
Merci pour l'aide!
Est-ce que 'UNASSIGNED' fait référence à option.text ou option.value? –
texte. Il y a une valeur différente. Mais même si je mets == 'abc123' quand l'événement se déclenche, il évaluera false et le chekbox devrait avoir désactivé = false. donc je ne pense pas que cela puisse être le problème. – kralco626