无法更改单选按钮选择 - KnockoutJS

Cant change radio button selection - KnockoutJS

本文关键字:选择 KnockoutJS 单选按钮      更新时间:2023-09-26

我对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 解决了此问题。

只是投入我的两分钱...

.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);

我认为你想多了,除非你是做一些真正具体的事情?

https://jsfiddle.net/1vu0skpg/5/