我对KnockoutJS很新,并注意到有很多关于单选按钮和Knockout的内容,但遗憾的是这些都不能帮助我。
我在两个单独的容器中有两个单选按钮,可以选择其中一个,但是当选择另一个时,遗憾的是,即使值等于传递给检查绑定的值,也不会更改选择。这是简化的html:
<div>
<label>
<input
type="radio"
name="type-1"
data-bind="click: function(data, event) { setUserClass('User_Classification_1', data, event); }, checked: userClass"
value="User_Classification_1"/>
Some Text
</label>
</div>
<div>
<label>
<input
type="radio"
name="type-1"
data-bind="click: function(data, event) { setUserClass('User_Classification_2', data, event);}, checked: userClass"
value="User_Classification_2"/>
Some Text.
</label>
</div>
这里是JS:
var certViewModel = function() {
var self = this;
self.userClass = ko.observable(undefined);
self.setUserClass = function(uClass, data, event) {
self.userClass(uClass);
console.log(self.userClass());
};
};
var viewModel = new certViewModel();
ko.applyBindings(viewModel);
以下是一个显示问题的小提琴示例: https://jsfiddle.net/1vu0skpg/
编辑:自己修正了。从点击处理程序返回true确定了问题。
答案 0 :(得分:0)
只要投入我的两分钱......
HTML
<div>
<label>
<input
type="radio"
name="type-1"
data-bind="checked: userClass"
value="User_Classification_1"/>
Some Text
</label>
</div>
<div>
<label>
<input
type="radio"
name="type-1"
data-bind="checked: userClass"
value="User_Classification_3"/>
Some Text.
</label>
</div>
This is the selected radio: <strong><span data-bind="text: userClass"></strong>
脚本
var certViewModel = function() {
var self = this;
self.userClass = ko.observable();
};
var viewModel = new certViewModel();
ko.applyBindings(viewModel);
我认为你过分思考这个问题,除非你想做一些非常具体的事情吗?