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é?
Afin d'obtenir la valeur textuelle d'une commande DropDownList, utilisez comme ci-dessous:
$("#ddl").data("kendoDropDownList").text();
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.
<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>
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);
}
});
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
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")
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 ...