单击后未选中单选按钮

时间:2015-06-23 13:27:58

标签: knockout.js

我正在尝试使用Knockout将click事件绑定到单选按钮。但是,单击单选按钮时,不会保存。

现在,我刚刚从活动中返回true。我可以看到事件确实被称为。如果我尝试console.log($parent.SelectedCrossing()),则会保存该值。有什么想法吗?

我的标记:

<div class="row">
    <!-- ko foreach: SelectedRoutes -->
    <div class="jumbotron text-center">
        <table class="table table-hover borderless" data-bind="visible: availableRoutes().length">
            <tbody>
                <!-- ko foreach: availableRoutes -->
                <tr>
                    <td>
                        <input type="radio" data-bind="attr: { value: ID() + bkt(), name: $parentContext.$index() + 'optionsRoute', disabled: !IsBookable }, checked: $parent.SelectedCrossing, click: function () { $parents[1].AvailableRouteChosen($parents[0]) }" />
                    </td>
                    <td>
                        <span data-bind="dateTime: TimeOfDeparture"></span>
                    </td>
                    <td>
                        <span data-bind="dateTime: TimeOfArrival"></span>
                    </td>
                </tr>
                <!-- /ko -->
            </tbody>
        </table>
    </div>
    <!-- /ko -->
</div>

js:

self.AvailableRouteChosen = function (obj) {
    return true;
}

1 个答案:

答案 0 :(得分:3)

您的点击处理程序不会返回任何内容:

click: function () { $parents[1].AvailableRouteChosen($parents[0]) }

虽然你的底层函数是(并且返回true,你需要做的是覆盖默认的点击行为)。只返回结果:

click: function () { return $parents[1].AvailableRouteChosen($parents[0]) }