如何根据使用knockout js选择的另一个下拉列表在下拉列表中设置所选值

时间:2015-03-25 19:19:53

标签: knockout.js

我正在尝试根据某人在另一个下拉列表中选择的内容,将选择内容设置为特定选择。我正在使用knockout js,这里是我需要更新值的选择的淘汰代码。

self.availableSex = ko.observableArray([
    new selectionOption("Male", "M"),
    new selectionOption("Female", "F")
]);
self.selectedSex = ko.observable();

和html protion

<select data-bind="options: availableSex,
     optionsText: 'name',
     value: selectedSex,
     optionsCaption: 'Select'" required>
</select>

我希望根据另一个下拉菜单选择男性或女性。我知道如何获取值,我似乎无法将其设置为基于其他下拉列表设置的值。

感谢您的帮助。我希望这一切都有道理。

1 个答案:

答案 0 :(得分:0)

您可以使用subscribe。只需在页面上进行搜索(它位于底部)

[编辑]

基于评论我更新了示例

你要做的是

self.others = ko.observableArray([1,2]);
self.selectedOther = ko.observable();

self.availableSex = ko.observableArray([
    new selectionOption("Male", "M"),
    new selectionOption("Female", "F")
]);
self.selectedSex = ko.observable();
self.selectedSex.subscribe(function(newValue){
    //newValue should be of type selectionOption
    if(newValue.value === "M"){ 
      self.selectedOther(1);
    }else{
     self.selectedOther(2);
    }
    //set other observable value
});

我在这里假设selectionOption看起来像这样:

var selectionOption = function(name, value){
    this.name = name;
    this.value = value;
};

因此我做newValue.value

的原因

作为另一个注释,我不是100%确定敲击如何比较复杂的对象,所以如果你不得不做self.selectedOther(some complex Object),你可能无法得到理想的行为。我通常在源头上查看,并传入相同的参考文献以确保安全。