我有一个带复选框和标签的模板,它与knockout'for'属性绑定。
无法触发点击事件,但它适用于除IE8以外的所有浏览器
<input class="checkbox" type="checkbox" data-bind="value:Id,checked:$root.selectedCategoryIds,attr: { 'id': 'product-choice-' + Id, name: Name }" />
<label class="label-container" data-bind="attr: { 'for': IsEnabled ? 'product-choice-' + Id : '' }">
<span class="checkbox-icon" data-bind="visible:IsEnabled"></span>
<span class="checkbox-label" data-bind="text:Name"></span>
</label>
即使我已经指定了Doc标准。
有没有解决方法
答案 0 :(得分:0)
IE8有时会抛出错误,当jqu中的保留字(例如for
,class
)的非加引号属性在HTML中时(我有class
这个)。因此,最安全地引用data-bind
中的属性,例如:data-bind="attr: { 'for': 'mylabel, 'class': 'myclass' }"
。确保您同时使用标签上的for
和name
&amp;输入id
。
此外,当你在表达式(上例中的isEnabled
)中使用observable(如果你这样做)时,你应该执行它:isEnabled()
,因为否则它将始终返回true。 / p>