单选按钮不使用淘汰赛3

时间:2014-12-02 07:31:39

标签: javascript knockout.js

最近我将代码从ko 2.2.1升级到3.0.0并体验了一些功能,其中一个功能与使用2.2.1但在3.0.0版本中打破的单选按钮有关。

我已经过去了     http://knockoutjs.com/upgrade-notes/v3.0.0.html

表示现在淘汰赛将严格检查。 以前我们有一些像

这样的东西
    <input type="radio" name="defaultlang" data-bind="attr:{value: 1},checked: 1">

在2.2.1上正常工作现在淘汰最新建议将其改为

    <input type="radio" name="defaultlang" data-bind="checkedValue: 1,checked: 1">

有没有其他方法可以进行更改?并希望与两个ko版本一起使用? 这是jsFiddle的相同。
http://jsfiddle.net/6mr5recs/

2 个答案:

答案 0 :(得分:0)

如果检查的绑定值为字符串,则检查的绑定在v.3.0.0中正常工作:

<input type="radio" name="defaultlang" data-bind="attr:{value: 1},checked: '1'">

以下是更新小提琴:http://jsfiddle.net/6mr5recs/6/

答案 1 :(得分:0)

通常您会使用数组来存储您的无线电组的选项。如果您不希望这样做,您仍然可以将其存储在value属性的视图中,并使用checkedValue: $element.value进行设置。

我稍微修改了你的小提琴,因为对于一个提供水果(而不是数量)之间选择的无线电组quantity可观察是没有意义的,最重要的是有一个名称defaultLanguage

无论如何,这是构建选项组的正确方法:http://jsfiddle.net/kevinvanlierde/6mr5recs/7/

代码:

<div>
  <input type="radio" name="defaultlang" value="fr"  data-bind="checkedValue: $element.value, checked: selectedLang "/>
  <span>FR</span>
</div>
<div>
  <input type="radio" name="defaultLang" value="en" data-bind="checkedValue: $element.value, checked: selectedLang" />
  <span>EN</span>
</div>
<div>
  <input type="radio" name="defaultlang" value="de" data-bind="checkedValue: $element.value, checked: selectedLang"/>
  <span>DE</span>
</div>

其中selectedLang保存所选选项的值。