2013-05-29 2 views
0

У меня есть приложение, в котором у меня есть шаблон, который я буду использовать для ввода формы.knockoutjs - Calculated Attr, передающий параметр, не работает в <IE9

Поскольку на странице будет несколько версий одного и того же ввода/метки, входные идентификаторы не могут быть жестко закодированы.

Скорее, я создал функцию, которую я буду использовать для привязки attr ('id' для входов, 'for' для меток).

Это отлично работает в Chrome и IE9, но не работает в IE8 & IE7.

У меня есть ярлык & вход:

<label data-bind="attr: {for: doId('name_first')}">First Name*</label> 
<input type="text" name="name-first" data-bind="value: name_first, attr: {id: doId('name_first')}" /> 

Мой нокаута код:

function MyViewModel() { 
    var self = this; 

    self.person_id = ko.observable('1234'); 
    self.name_first = ko.observable(); 

    self.doId = function(seed){ 
     return seed + "-" + self.person_id(); 
    }; 
} 

ko.applyBindings(new MyViewModel()); 

JsFiddle не похоже на работу в IE8, так вот jsbin.

Кто-нибудь испытал это и обходное решение?

Повторяющийся шаблон с вводами/ярлыками HAS - общая проблема.

- Скотт

ответ

0

for является зарезервированным ключевым словом в JavaScript и может вызвать проблемы в IE <-при использовании в качестве имени свойства. Решение состоит в том, чтобы положить котировки около for, как:

attr: { 'for': doId('name_first') } 
+0

You da man! Woohoo! Благодаря! – Scott

Смежные вопросы