我有一些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”而不是所选值。
如果未选择该值,则使用$("#cnty1").val();
所以,请建议我一个解决方案, 1)我应该只获得Selected值和 2)下拉列表的值仅当用户从列表中选择一个值,但没有选择时才获取列表的值。
答案 0 :(得分:2)
使用以下jquery获取选定的值/文本:
价值:
$(&#34;#cnty1选项:选择&#34;)。val();
用于文字:
$(&#34;#cnty1选项:已选择&#34;)。text();
答案 1 :(得分: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 :(得分: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,它可以让您的生活更轻松。