我在单选按钮上面运行foreach循环但不幸的是我无法检查任何单选按钮。这是我的观点
<div class="tab-pane" id="tab3">
<div class="form-body">
<div class="row">
<div class="col-md-12">
<h3 class="form-section">Qualification Factor</h3>
<div class="row" data-bind="foreach: leadqualificlist">
//Here is my foreach loop
<div class="col-md-6">
<div class="form-group">
<div class="radio-list radio-list-padding">
<label class="radio-inline">
<input type="radio" name="serious" value="0" data-bind="checked:Scoreschk, attr: { name: 'grp' + $data.Negativescore}" />
Negative
</label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
我在leadqualificlist observable数组中有列表。
答案 0 :(得分:1)
单选按钮的行为与复选框不同,请参阅documentation:
对于单选按钮,当且仅当参数值等于单选按钮节点的value属性或checkedValue参数指定的值时,KO才会设置要检查的元素。 &LT; ...&GT;当用户更改选择了哪个单选按钮时,KO会将您的模型属性设置为等于所选单选按钮的值。
所以,有了这个说,你不能为你的checkboxex设置不同的名称(使用attr绑定),但是应该在绑定中设置值,如下所示:
...
<input type="radio" name="serious" data-bind="value: Scoreschk, checked:$parent.selectedScoreCheck" />
...
现在您的视图模型应如下所示:
function ViewModel() {
var self = this;
self.leadqualificlist = ko.observableArray([new Qualification(0, 5),
new Qualification(1, 2),
new Qualification(2, 1)]);
self.selectedScoreCheck = ko.observable("2"); // Note here must be string!
}
资格是:
function Qualification(scoreCheck, negativeScore) {
this.Scoreschk = scoreCheck;
this.Negativescore = negativeScore;
}
请参阅demo。