KnockoutJs绑定到单选按钮

时间:2016-02-29 16:52:17

标签: knockout.js asp.net-mvc-5 radio-button

我有一个bool product.wantExtraInsurance,我试图通过knockoutjs绑定到一个广播组,如下所示:

<div class="btn-group" data-toggle="buttons">
   <label class="btn btn-default">
       <input type="radio" value="true" data-bind="checked: product.wantExtraInsurance" />Yes
   </label>
   <label class="btn btn-default">
       <input type="radio" value="false" data-bind="checked: product.wantExtraInsurance" />No
   </label>
</div>

小组行动无法正常工作,请您告诉我实现这一目标的最佳方法。感谢

2 个答案:

答案 0 :(得分:1)

要绑定单选按钮,您可以创建另一个可观察的计算机并将其绑定到单选按钮。使用您的observable将数据发送回服务器。 对于无线电组选项,请为分组的项目(单选按钮)提供相同的名称。

viewmodel.js

vm.product.wantExtraInsuranceOption = ko.pureComputed({
    read: function () {
        return vm.product.wantExtraInsurance().toString();
    },
    write: function (value) {
        vm.product.wantExtraInsurance(value === "true");
    }
});

HTML:

<div class="btn-group"  data-toggle="buttons">
  <label class="btn btn-default">
    <input type="radio" name="insuranceOption" value="true" data-bind="checked: vm.product.wantExtraInsuranceOption" />Yes
  </label>
  <label class="btn btn-default">
    <input type="radio" name="insuranceOption" value="false" data-bind="checked: vm.product.wantExtraInsuranceOption" />No
  </label>
</div>

注意:请加载所有先决条件,例如knockoutJs。

答案 1 :(得分:0)

name属性添加到具有相同名称的按钮。这将他们分组。

如上所述@Roy J,请查看文档knockoutjs.com/documentation/checked-binding.html以获取数据绑定。