Javascript 淘汰-如何将动态填充的复选框转换为单选按钮(是/否)?

Javascript 淘汰-如何将动态填充的复选框转换为单选按钮(是/否)?,javascript,jquery,knockout.js,radio-button,Javascript,Jquery,Knockout.js,Radio Button,我有一个复选框,可以动态填充对象数组,但我现在需要将其转换为单选按钮,以允许用户选择是或否(而不是一个复选框) 选定客户 , 尚未工作。在所有客户机中只能选择一个是/否 对 不 您的代码有很多问题,最重要的是: 单选按钮在组中工作,这些组可以由name属性指定 对于单选按钮和复选框上的observableArray(selectedCustomers),敲除功能实际上并不相同 我更新了你的小提琴 我真的不知道我能改变什么,不能改变什么。所以我让输入和输出数组保持不变。我只改变了这

我有一个复选框,可以动态填充对象数组,但我现在需要将其转换为单选按钮,以允许用户选择是或否(而不是一个复选框)


选定客户
,

尚未工作。在所有客户机中只能选择一个是/否


对 不

您的代码有很多问题,最重要的是:

  • 单选按钮在组中工作,这些组可以由
    name
    属性指定
  • 对于单选按钮和复选框上的observableArray(
    selectedCustomers
    ),敲除功能实际上并不相同
我更新了你的小提琴 我真的不知道我能改变什么,不能改变什么。所以我让输入和输出数组保持不变。我只改变了这两种方法之间的数据处理。 基于此,您需要的是找出最佳解决方案

在第一部分中,我只添加了另一个为查看而准备的数组,该数组仅扩展了原始项目的
isSelected
observable

那么我只是把它绑在视图中。现在您应该看到,复选框和单选按钮应该在同一视图中同时工作

功能客户(类型、名称、选中){
var self=这个;
self.CustomerType=ko.observable(类型);
self.Name=ko.observable(Name);
self.IsChecked=ko.可观察(选中| |假);
}
函数VM(){
var self=这个;
//动态填充-用于测试目的
self.AllCustomers=ko.array([{
代码:“001”,
名称:“客户1”
},
{
代码:“002”,
名称:“客户2”
},
{
代码:“003”,
名称:“客户3”
},
]);
self.allCustomerViewModel=ko.observableArray(
self.AllCustomers().map(函数(值){
value.isSelected=ko.可观察(假);
返回值;
}));
self.selectedCustomers=ko.pureComputed(函数(){
var结果=[];
ko.utils.arrayForEach(self.allCustomerViewModel(),函数(项){
if(item.isSelected()){
结果:推送(项目);
}
});
返回结果;
});
self.Customer=ko.observearray([]);//我需要将此回传给所有选定的客户
//返回选中此框的所有客户
self.selectedCustomers.subscribe(函数(){
self.Customer.removeAll();
ko.utils.arrayForEach(self.selectedCustomers(),函数(项){
self.Customer.push(新客户(item.code、item.name、true));
});
});
}
应用绑定(新VM())

选定客户
,

尚未工作。在所有客户中只能选择“是/否”中的一个


对 不

@T.J.Crowder完成!我还是不太明白。:-)您想完全删除复选框,对吗?只要单选按钮就行了?我这样问是因为上面两个按钮之间似乎存在某种交互作用。是的,用单选按钮替换复选框。复选框示例只是演示了单选按钮应该如何工作
<!--
From (checkboxes):
   [] Customer 1
   [] Customer 2

To (radio button Yes/No options):

  Customer 1 (customer code)
  [] Yes
  [] No
-->