2015-04-06 114 views
0

我有一個模板,帶有敲除'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> 

即使我指定文檔標準。

有任何解決方法

+0

你能爲此提供一個JSFiddle嗎? – tcigrand

+0

[標籤爲IE8無法識別的\ [... \]]的可能重複(http://stackoverflow.com/questions/10176064/label-for-not-recognised-by-ie8) –

回答

0

IE8有時會拋出錯誤時也是保留字在JavaScript中未加引號的屬性(如forclass)是在HTML(我有這個與class)。因此,在data-bind中引用您的屬性是最安全的,例如:data-bind="attr: { 'for': 'mylabel, 'class': 'myclass' }"。確保在標籤上使用for,並在輸入上使用name & id。另外,當你在表達式中使用可觀察(如果你這樣做)(isEnabled在你上面的例子中),你應該執行它:isEnabled(),否則它總是返回true。