IE8 Label for和Knockout绑定

时间:2015-04-06 14:46:53

标签: javascript jquery knockout.js internet-explorer-8

我有一个带复选框和标签的模板,它与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标准。

有没有解决方法

1 个答案:

答案 0 :(得分:0)

IE8有时会抛出错误,当jqu中的保留字(例如forclass)的非加引号属性在HTML中时(我有class这个)。因此,最安全地引用data-bind中的属性,例如:data-bind="attr: { 'for': 'mylabel, 'class': 'myclass' }"。确保您同时使用标签上的forname&amp;输入id

此外,当你在表达式(上例中的isEnabled)中使用observable(如果你这样做)时,你应该执行它:isEnabled(),因为否则它将始终返回true。 / p>