如何使用knocket js在选择另一个下拉列表的基础上设置下拉列表中的选定值



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

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

和html保护

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

我想让它根据另一个下拉列表选择男性或女性。我知道如何获得这些值,但我似乎无法根据另一个下拉列表将其设置为我想要的值。

谢谢你的帮助。我希望这一切都有意义。

您可以使用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),你可能不会得到想要的行为。为了安全起见,我通常会在源代码上查找并传递相同的引用。

最新更新