KnockoutJS获取选择的文本和值

时间:2019-07-16 08:58:46

标签: knockout.js

我有以下代码可供选择:

<select data-bind="options: $root.Countries, optionsText: 'Text', optionsValue: 'Value',  value: $root.SelectedDialogCountry, optionsCaption: 'All'"></select>

我可以使用“值”获取选择的值,但我也想获取“文本”

  

示例:文本:美利坚合众国值:美国

我有办法获得“美利坚合众国”吗?

1 个答案:

答案 0 :(得分:1)

您可以从绑定中删除optionsValue: 'Value'属性。这会将整个 Country 对象设置为SelectedDialogCountry中可观察的值。 (Documentation

这是一个有效的代码段。

function viewModel() {
  const self = this;
  self.Countries = ko.observableArray([
    { Text: "United States of America", Value: "USA" },
    { Text: "China", Value: "CHN" },
    { Text: "India", Value: "IND" }]);
    
  self.SelectedDialogCountry = ko.observable();
  
  self.SelectedDialogCountry.subscribe(_ => {
    console.log(self.SelectedDialogCountry().Text)
    console.log(self.SelectedDialogCountry().Value)
  })
};

ko.applyBindings(new viewModel)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<select data-bind="options: Countries,
                       optionsText: 'Text',
                       value: SelectedDialogCountry,
                       optionsCaption: 'Select'"></select>