我正试图根据某人在另一个下拉列表中选择的内容,将下拉列表中的选择设置为特定的选择。我使用的是敲除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)
,你可能不会得到想要的行为。为了安全起见,我通常会在源代码上查找并传递相同的引用。