如果你已经显示了你的尝试,那会更好。
有不同的方法来做到这一点。下面是一个方法使用基因敲除:
实施例:https://jsfiddle.net/kyr6w2x3/43/
HTML:
<select data-bind="foreach: items,value:selectedOption">
<option data-bind="value: value, text:name, attr:{'disabled' :IsDisable}" ></option>
</select>
<input type="button" data-bind="click:btnClicked" value ="Click To enable one">
JS型号:
function YourViewModel() {
var self = this ;
var options = [ {name: 'One' , value :'1'},{name: 'two' , value :'2'},{name: 'three' , value :'3'}];
self.items = ko.observableArray();
self.selectedOption = ko.observable();
$.map(options, function (item) {
self.items.push(new drowpDownOptionViewModel(item));
});
// subscribe to selected option
self.selectedOption.subscribe(function (newValue) {
// if One is selected make it disable
if(newValue == 1){
ko.utils.arrayForEach(self.items(), function (item) {
return item.IsDisable(item.value() == 1);
});
}
}, self);
self.btnClicked = function(){
ko.utils.arrayForEach(self.items(), function (item) {
item.IsDisable(false);
});
}
}
function drowpDownOptionViewModel (data){
var self = this;
self.name = ko.observable(data.name);
self.value = ko.observable(data.value);
self.IsDisable = ko.observable(false);
}
ko.applyBindings(new YourViewModel());
更新了例:https://jsfiddle.net/kyr6w2x3/44/
Matt我想修改代码,所以如果我点击'one',现在就禁用它,如果我点击两个“One and Two”被禁用,那么第三个是禁用的。但是,只要我点击一个下拉选项,就会为该选项设置一个按钮,然后点击该按钮将只启用该选项。启用按钮将不可见,除非我点击任何选项,当启用该选项时该按钮将隐藏。请注意,我可以启用禁用任何选项1,2或3或全部三个,所以按钮数量将等于选项数量。马特请帮助我是新的敲除 –
这里是我需要的链接,我想创建这个纯粹淘汰赛的例子。 http://jsfiddle.net/pd5Nk/1/ –
这里是你解释的链接。 https://jsfiddle.net/kyr6w2x3/44/ –