web-dev-qa-db-fra.com

Comment obtenir le texte de l'élément sélectionné de Dropdown dans l'interface utilisateur de Kendo?

J'utilise Kendo UI Controls. Je veux obtenir le texte sélectionné de la liste déroulante dans jquery. J'ai utilisé cette syntaxe:

 $("#ddl").data("kendoDropDownList").text();

Je peux obtenir le texte dans tous les navigateurs sauf IE. Je ne sais pas pourquoi cela ne fonctionne pas dans IE, veuillez m'aider. Existe-t-il un autre moyen d'obtenir le texte sélectionné?

29
Ram Singh

Afin d'obtenir la valeur textuelle d'une commande DropDownList, utilisez comme ci-dessous:

$("#ddl").data("kendoDropDownList").text();
43
Dinesh Haraveer

Pour DropDownLists, vous incluez un DisplayText et une valeur. DisplayText étant ce que l'utilisateur sélectionne et Value étant ce qui est utilisé dans le back-end.

Exemple: vous avez une base de données qui stocke les informations de contact et votre DisplayText serait le nom des contacts et la valeur serait le champ ID des clés primaires pour cette ligne particulière dans la base de données.

ID - 1 Nom - John Smith

$("#ddl").data("kendoDropDownList").dataItem().DisplayText = John Smith
$("#ddl").data("kendoDropDownList").dataItem().Value = 1

C'est ce que je cherchais à faire, j'espère que c'est la réponse que vous cherchiez également.

5
Zach

Voici un violon est-ce que quelqu'un veut essayer

<select id="testDrpDown">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
    <option value="1231231">and so on</option>
</select>
</br>
</br>
<button onclick="MethOne()">Method one</button>
</br>
</br>
<button onclick="Methtwo()">Method one</button>

<script>
$("#testDrpDown").kendoDropDownList();

//var can be used anuwhere in js
var dropdown = $("#testDrpDown").data("kendoDropDownList");

function MethOne() {
    alert($("#testDrpDown").data("kendoDropDownList").text());
}

function Methtwo() {
    alert(dropdown.text());
}
</script>
2
karthickj25

Voici une autre façon:

e.item[0].textContent

Exemple complet:

$("#ancillaryTestDDL").kendoDropDownList({
    dataSource: that.viewModel.ancillaryTestDS,
    dataTextField: "DisplayValue",
    dataValueField: "Id",
    select: function (e) {
        console.log(e.item);
        console.log(e.item[0].textContent);
    }
});
1
user1477388

Lorsqu'une valeur est sélectionnée dans une liste déroulante dans l'événement select, la valeur sélectionnée est disponible comme suit,

@(Html.Kendo().DropDownList()
              .Name("booksDropDown")
              .HtmlAttributes(new { style = "width:37%" })
              .DataTextField("BookName")
              .DataValueField("BookId")
              .Events(x => x.Select("onSelectBookValue"))
              .DataSource(datasource => datasource.Read(action => action.Action("ReadBookDropDow", "PlanningBook").Type(HttpVerbs.Get)))
              .OptionLabel("Select"))

Fonction Javascript comme suivre,

  function onSelectBookValue(e) {    

                var dataItem = this.dataItem(e.item.index());
                var bookId = dataItem.BookId; // value of the dropdown
                var bookName = dataItem.BookName; // text of the dropdown
               //other user code
}

Je crois que cela aidera quelqu'un.

Merci

1
dush88c

Vous pouvez essayer comme ça

 var ddl= $("#ddl").data("kendoDropDownList").dataItem($("#ddl").data("kendoDropDownList").select()).FieldName;
//FieldName is the text field of DataSource ---  .DataTextField("FieldName")
1
MustafaP

Je suis d'accord avec d.popov, votre question semble être la réponse. placer votre relevé dans une fonction d'alerte fait apparaître le texte sélectionné:

Alert ($ ("# ddl"). Data ("kendoDropDownList"). Text ());

Testé dans IE11. La version réelle IE liée au problème n'a jamais été mentionnée ...

0
IUnknown