我正在尝试根据某人在另一个下拉列表中选择的内容,将选择内容设置为特定选择。我正在使用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>
我希望根据另一个下拉菜单选择男性或女性。我知道如何获取值,我似乎无法将其设置为基于其他下拉列表设置的值。
感谢您的帮助。我希望这一切都有道理。
答案 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)
,你可能无法得到理想的行为。我通常在源头上查看,并传入相同的参考文献以确保安全。