javascript - 为什么我的 Knockout Radio 按钮在另一个具有点击绑定(bind)的元素中时会失败?

标签 javascript html knockout.js

我有一个单选按钮列表。我想点击 <li>他们也检查单选按钮。这一切都有效,直到我把 name radio 元素的属性。然后我的代码停止工作。

这是我的代码:

<ul data-bind="foreach: rows">
    <li data-bind="click: function() { $parent.val($data); }">
        <input type="radio" name="my_radio" data-bind="value: $data, checked: $parent.val" />
        <label data-bind="text: $data"></label>
    </li>
</ul>

这里有两个测试用例。

确保同时单击单选按钮和行。

工作: http://jsfiddle.net/Dihedral/HJGxX/2/

不工作: http://jsfiddle.net/Dihedral/HJGxX/3/

在第二种情况下,当只点击 radio 时,您会看到 val() observable 正在更新,但 UI 没有。任何人都知道这里发生了什么,或者可以看到解决方法?

最佳答案

点击没有到达单选按钮,因为 knockoutjs 从点击处理程序返回 false,阻止默认操作发生(参见:note 3)。只需从点击处理程序返回 true ( http://jsfiddle.net/HJGxX/4/ ):

<li data-bind="click: function() { $parent.val($data); return true; }">

关于javascript - 为什么我的 Knockout Radio 按钮在另一个具有点击绑定(bind)的元素中时会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18521343/

相关文章:

javascript - RequireJS:将路径设置为 'ignore'

knockout.js - knockoutjs 模板在 viewModel 加载/绑定(bind)之前显示

JavaScript 密码验证正则表达式按分组顺序失败

javascript - .mousedown() 仅对每个元素调用一次

javascript - 不使用 flash 的多张图片上传

javascript - 关闭打开的子菜单 - jQuery Accordion

html - Angular Material : Styling mat-form-field inside mat-toolbar

knockout.js - knockout 主详细信息不适用于选择

javascript - 如何在点击处理程序上检查键盘修饰符,如 "shift"?

javascript - 如何在日期选择器上添加另一个功能