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

时间:2016-03-16 11:29:54

标签: javascript knockout.js radio-button

我对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确定了问题。

1 个答案:

答案 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);

我认为你过分思考这个问题,除非你想做一些非常具体的事情吗?

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

相关问题