0

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)ドロップダウンリストの値を取得する必要があるように解決策を提案してください。ユーザーがリストから値を選択した場合にのみ、選択せずにリストの値を取得しないでください.

4

3 に答える 3

2

次の jquery を使用して、選択した値/テキストを取得します。

の場合:
$("#cnty1 option:selected").val();

テキスト用:
$("#cnty1 option:selected").text();

于 2012-10-31T05:28:11.490 に答える
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);
}
于 2012-11-28T06:48:30.293 に答える
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;
                        }
                    });
                }
            });
    }
});

Knockout-Kendoも見てください。

于 2012-11-01T01:44:08.270 に答える