0

我有一个代码(你可以在http://learn.knockoutjs.com/#/?tutorial=intro播放它,在播放之前单击在输出窗口中运行):

HTML:

<div class="btn" style="margin-left: 15px;" data-bind="click: includeMyNumber">
   <input data-bind="checked: isIncludeMyNumber" data-val="true" id="IncludeMe" name="IncludeMe" style="margin: 0" type="checkbox" value="true" />&nbsp;
   Include my number (+<span>11111111111</span>) 
</div>

Javascript:

 // This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
function AppViewModel() {

    this.isIncludeMyNumber = ko.observable(false);

    this.includeMyNumber = function(){
       this.isIncludeMyNumber(!this.isIncludeMyNumber());
    }
}

// Activates knockout.js
ko.applyBindings(new AppViewModel());

问题是复选框单击事件处理无法正常工作。当我单击 [div class="btn"...] ...[/div] 区域内的空间时,复选框行为正常,但是当我单击复选框本身时,它不会被选中。在任何情况下,我怎样才能使其可检查?

谢谢你。

4

1 回答 1

1

您的用例是在单击文本时选中复选框?

我在我的自定义绑定集合中为此进行了绑定

https://github.com/AndersMalmgren/Knockout.Bindings

http://jsfiddle.net/5nqw4/

<input data-bind="checked: checked, label: { caption: 'Label with reference to input' }" type="checkbox" />

编辑:您还可以通过使用将复选框包装在标签元素中的标准技巧来解决此问题,例如http://jsfiddle.net/7dTfM/

于 2012-12-03T13:11:15.913 回答