IE8标签和敲除绑定
问题描述:
我有一个模板,带有敲除'for'属性的复选框和标签。IE8标签和敲除绑定
无法触发点击事件,但它可以在所有浏览器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>
即使我指定文档标准。
有任何解决方法
答
IE8有时会抛出错误时也是保留字在JavaScript中未加引号的属性(如for
,class
)是在HTML(我有这个与class
)。因此,在data-bind
中引用您的属性是最安全的,例如:data-bind="attr: { 'for': 'mylabel, 'class': 'myclass' }"
。确保在标签上使用for
,并在输入上使用name
& id
。另外,当你在表达式中使用可观察(如果你这样做)(isEnabled
在你上面的例子中),你应该执行它:isEnabled()
,否则它总是返回true。
你能为此提供一个JSFiddle吗? – tcigrand
[标签为IE8无法识别的\ [... \]]的可能重复(http://*.com/questions/10176064/label-for-not-recognised-by-ie8) –