Javascript 如何创建至少有一个复选框处于活动状态的复选框列表
我有一个包含2个复选框的示例。我想确保始终有1个复选框处于活动状态,这意味着复选框1或复选框2或两者都可以处于活动状态。我该怎么做Javascript 如何创建至少有一个复选框处于活动状态的复选框列表,javascript,checkbox,knockout.js,Javascript,Checkbox,Knockout.js,我有一个包含2个复选框的示例。我想确保始终有1个复选框处于活动状态,这意味着复选框1或复选框2或两者都可以处于活动状态。我该怎么做 函数DemoItem(id、名称){ var self=这个; self.id=ko.可观察(id); self.Name=ko.observable(Name); 自选择=可观察(假); } 函数ViewModel(){ var self=这个; self.availableItems=ko.observableArray(); self.AssociatedI
函数DemoItem(id、名称){
var self=这个;
self.id=ko.可观察(id);
self.Name=ko.observable(Name);
自选择=可观察(假);
}
函数ViewModel(){
var self=这个;
self.availableItems=ko.observableArray();
self.AssociatedItemId=ko.observableArray();
self.init=函数(){
self.availableItems.push(新的DemoItem(1,'One'));
self.availableItems.push(新的DemoItem(2,'Two'));
};
self.toggleAssociation=功能(项目){
if(item.Selected()==true)console.log(“分离项”+item.id());
else console.log(“关联项”+item.id());
item.Selected(!(item.Selected());
返回true;
};
}
var viewModel=新的viewModel();
应用绑定(视图模型);
init()代码>
可用项目:
关联项目ID:
在self.toggleAssociation
中,每当您取消选中某项时,您首先通过循环查看self.availableItems
并计算选中的item.Selected()==true
来计算选中的项的数量。如果只有一个,那么不要取消选中它
self.toggleAssociation = function (item) {
if (item.Selected() === true) {
var howManyAreSelected = 0;
ko.utils.arrayForEach(self.availableItems(), function (item) {
if (item.Selected() === true) {
howManyAreSelected += 1;
}
});
if (howManyAreSelected > 1) {
item.Selected(false);
}
}
else {
item.Selected(true);
}
return true;
};