<ol class ="lists" id ="list1"data-bind="foreach: quiz.questions" >
<li class="lists" >
<div>
<label class="question_que"><span data-bind="text: Name"></label></span>
<ul data-bind="foreach: Options">
<li >
<fieldset data-role="controlgroup">
<input type="checkbox" name="checkbox-1a" id="checkbox-1a" data-bind="checked:IsAnswer">
<label for="checkbox-1a" class="ch_box"><span data-bind="text:Name"> </span></label>
</fieldset>
</li>
</ul>
</div>
</li>
</ol>
KO绑定工作正常,我在IsAnswer
分配了真假,但list view
有时没有显示复选框。
如何在不丢失风格的情况下完成任务?
答案 0 :(得分:0)
我想你使用像#checkbox-1a
这样的ID选择器来控制你的控件样式。
您不得对同一文档中的不同DOM元素使用相同的ID。这是HTML规范。如果你这样做,你会得到奇怪的行为。
为避免重复ID,您可以做两件事:
1)删除id,并将复选框包装在label标签内,这样就不需要id:
<label class="ch_box">
<input type="checkbox" .../>
<span data-bind="text:Name"></span>
</label>
2)绑定id属性并使用$index
生成唯一ID,如下所示:
<label data-bind="
attr{id: 'check-box-q' + $parentContext.$index() + 'a' + $index()}" ...
或许,对于这两种解决方案中的任何一种,您都必须更改CSS样式,但是您没有在问题中显示它们