如何在列表视图中获取kendoui下拉列表中的选择值?

问题描述 投票:0回答:3

我有一些kendoui列表视图,其中包括kendoui下拉列表,我想得到这些下拉列表的选择值。要做到这一点,我试图。

 $("#cnty1").val();

这里是我的下拉列表,即来自数据库表的国家列表。

<input select STYLE="width:90px;height:auto" id ="cnty1" data-bind="value:cnty1" 
name="cnty1" data-type="string" data-text-field="cnty" 
data-value-field="cntyid" data-source="sourcedata1" class="k-d"   
data-role="dropdownlist" />

<span data-for="cnty1" class="k-invalid-msg"></span>

这里cnty1是下拉列表的id,但我没有得到该值,而是得到了被选择的值的 "id",但不是被选择的值。

而且,如果该值没有被选中,我通过使用以下方法得到第一个值的id $("#cnty1").val();

所以,请给我一个解决方案,1)我应该只得到所选的值,2)只有当用户从列表中选择一个值时才得到下拉列表的值,但不选择就得不到列表的值。

c# asp.net-mvc-3 kendo-ui
3个回答
2
投票

试试这个。

<select STYLE="width:90px;height:auto" id ="cnty1" data-bind="value:cnty1" 
data-text-field="cnty" data-value-field="cntyid" data-source="sourcedata1" data-role="dropdownlist" data-change="cntySelect" data-option-label="Select"></select>

function cntySelect(e) {                                                
          var dropDownVal = $("#cnty1").val();
            alert(dropDownVal);
}

2
投票

使用下面的jquery来获取选中的valuetext。

对于 价值: $("#cnty1 option:selected").val();

用于 文字 使用。$("#cnty1 option:selected").text();


0
投票

虽然这段代码被用于KendoUI网格中的FK JSON对象,但其思想是相似的。你必须在下拉值选择时绑定对象。下拉基本上包含的选项是你的值ID,而不是对象本身。因此,你必须在数据源中迭代找到哪个对象被选中,然后在数据模型中进行替换。

/**
 * KendoDropDownEditor Class
 * */
var KendoDropDownEditor = Class({

    initialize: function (schema, gridId, readUrl) {

        var readUrl = readUrl || base + schema.entityName + "/read";
        this.dataSource = DataSourceGenerator.crudDS(schema, gridId, readUrl);

        this.dataTextField = schema.model.dropDownTextField;
        this.dataValueField = schema.model.id;
    },

    /**
     *
     * */
    do:function (container, options) {
        var self = this;
        var a = $('<input data-text-field="' + self.dataTextField + '" data-value-field="' + self.dataValueField + '" data-bind="value:' + options.field + '"/>')
            .appendTo(container)
            .kendoDropDownList({
                autoBind:false,
                dataSource:self.dataSource,
                close:function (e) {
                    $.each(self.dataSource.data(), function(key, value) {
                        if (value[self.dataValueField] == e.sender.value()) {
                            options.model[options.field] = value;
                            return false;
                        }
                    });
                }
            });
    }
});

也可以看一下 击倒-剑道,它可以让你的生活更轻松。

© www.soinside.com 2019 - 2024. All rights reserved.