gpt4 book ai didi

javascript - 在 knockout 中标记复选框和单选框

转载 作者:技术小花猫 更新时间:2023-10-29 11:49:05 26 4
gpt4 key购买 nike

在 html 中,当我们单击文本或将鼠标悬停在单选按钮或复选框的文本上时,我们可以使用 html 将其选中,如下所示:

<label>
<input type="checkbox" />option 1
</label>

<input id="checkboxid" type="checkbox" />
<label for="checkboxid">option 1</label>

我试图通过 knockout 获得相同的行为,但无法找到相同的帮助:

<label data-bind="text: $data.optiontext">
<input type="checkbox" data-bind="value: $data.optionvalue, checked: $parent.selectedOptions" />
</label>

View (或 html)在下面(注意下面的代码不包含上面的 html,所以当您尝试它时,您需要进行上面的更改并检查它):

<div data-bind="foreach: options">
<input type="checkbox" data-bind="value: $data.optionvalue, checked: $parent.selectedOptions" />
<label data-bind="text: $data.optiontext"></label>
</div>

<hr />

<div data-bind="text: selectedOptionsList"></div>​

这是 View 模型:

var viewModel = {
options: [
{ optiontext: 'Simple', optionvalue: "1" },
{ optiontext: 'Advanced', optionvalue: "2" }
],
selectedOptions: ko.observableArray(["2"])
};

viewModel.selectedOptionsList = ko.computed(function() {
return this.selectedOptions().join(",");
}, viewModel);

ko.applyBindings(viewModel);

这是 jsFiddle 链接:http://jsfiddle.net/rupesh_kokal/AFzbY/

最佳答案

您可以通过为文本使用额外的 span 来实现 1. 版本:

<label>
<input type="checkbox" data-bind="value: $data.optionvalue,
checked: $parent.selectedOptions" />
<span data-bind="text: $data.optiontext"/>
</label>

Demo fiddle.

或者使用 attr binding 的 2. 版本设置 idfor 属性:

<input type="checkbox" data-bind="value: $data.optionvalue, 
checked: $parent.selectedOptions, attr: { id: optiontext}" />
<label data-bind="text: $data.optiontext, attr: {for: optiontext}" />

Demo fiddle

关于javascript - 在 knockout 中标记复选框和单选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13660608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com