我有一个应用程序,我有一个模板,我将用于表单输入。
由于页面上会有多个版本的相同输入/标签,因此无法对输入ID进行硬编码。
相反,我已经构建了一个函数,我将用它来绑定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 :(得分:0)
for
是JavaScript中的保留关键字,可能会导致IE中出现问题&lt; 9用作属性名称时。解决方案是在for
附近加上引号,如:
attr: { 'for': doId('name_first') }