2009-04-28 4 views
1

J'essaie d'accéder aux valeurs dans FormCollection à l'intérieur d'une action. Je peux obtenir le champ de valeur en faisant:Récupère la valeur d'affichage à partir d'un DropDown

var value = formCollection["MyDropDownList"]; 

Mais je n'arrive pas à trouver un moyen d'obtenir la valeur d'affichage. Est-ce que je manque quelque chose d'évident? Un casting peut-être?

Répondre

1

Getting text from an HTML drop down selection list using JavaScript code

Pour obtenir le texte de chaque option est un peu plus délicat. Nous utilisons la propriété selectedIndex de la liste de sélection pour capturer l'option sélectionnée, puis passons cette valeur à la propriété options []. Voici le code

var w = document.myform.mylist.selectedIndex; 
var selected_text = document.myform.mylist.options[w].text; 
0

Je ne pense pas qu'il y ait un moyen d'obtenir la colonne d'affichage de la FormCollection. Fondamentalement, la collection de formulaire est un moyen facile d'interroger l'objet de demande (Request.Form, Request.QueryString, etc.) et la seule chose qui va dans ce sont les valeurs des champs de saisie.

Si vous avez vraiment besoin du texte d'affichage, vous devez l'obtenir à partir de la collection avec laquelle vous avez lié la liste et y accéder via la clé (la valeur que vous avez sélectionnée dans la collection de formulaires). Par exemple, si c'est une collection de dictionnaire que vous avez liée à la liste, utilisez ce même dictionnaire pour rechercher la valeur basée sur la clé.

Je voudrais avoir plus d'informations sur la manière dont vous liez la liste déroulante pour vous aider.

0

C'est le comportement normal. Lorsqu'un formulaire est publié, seule la collection de valeur-nom générée à partir des champs de formulaire est envoyée au serveur. Et bien sûr, le texte interne du tag option n'appartient pas à cette collection.

0

vous le faites bien, liste déroulante sended montre la valeur de l'élément sélectionné ne pas affiché le texte de l'élément sélectionné ... si vous voulez (pour une raison quelconque, parce que je suis en train de remplir cette liste déroulante sur le modèle?) pour voir envoyer un texte d'affichage aussi, peut-être vous pouvez le mettre dans un champ caché avec javascript sur chaque changement de sélection dans la liste déroulante ...

acclamations

Questions connexes