我使用knockoutjs绑定选择列表。这是一个Sample ,我希望选择选项文本而不是选定的值。
如何使用knockoutjs获取它?
<select id="projectMenu" name="projectMenu" data-bind="
value: selectedProject,
options: projectFilters,
optionsText: 'a',
optionsValue: 'b',
optionsCaption: '-- Select Project --'
">
</select>
<b>Selected Project:</b> <span data-bind="text: selectedProject"></span>
答案 0 :(得分:10)
最简单的方法是删除optionsValue绑定。 当您不sepcify optionsValue绑定时,整个项目将是选定的值。
<select id="projectMenu" name="projectMenu" data-bind="
value: selectedProject,
options: projectFilters,
optionsText: 'a',
optionsCaption: '-- Select Project --'
">
</select>
<b>Selected Project:
<span data-bind="text: selectedProject() ? selectedProject().a : 'no selection '"></span>
答案 1 :(得分:1)
到目前为止,我担心只使用简单的绑定是不可能的。但您可以轻松创建基于optionValue
选择optionText的computedObservablevm.selectedOption= ko.computed(function () {
for (var i = 0; i < this.projectFilters().length; i += 1) {
var data = this.projectFilters()[i];
if (data.a === this.selectedProject()) {
return data.b;
}
}
return null;
}, vm);
答案 2 :(得分:1)
vm.selectedCountryName = ko.computed(function () {
var text = '';
ko.utils.arrayForEach(vm.countries(), function (item) {
if (item.CountryId == vm.selectedCountry()) {
text = item.CountryName;
return;
}
});
return text;
});