0

我有一个应用程序,其中有一个用于表单输入的模板。

由于页面上将有相同输入/标签的多个版本,因此输入 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

有人遇到过这种情况并有解决方法吗?

使用输入/标签重复模板必须是一个常见问题。

——斯科特


for是 JavaScript 中的保留关键字,当用作属性名称时可能会导致 IE < 9 出现问题。解决方案是在周围加上引号for

attr: { 'for': doId('name_first') }
4

1 回答 1

0

for是 JavaScript 中的保留关键字,当用作属性名称时可能会导致 IE < 9 出现问题。解决方案是在周围加上引号for

attr: { 'for': doId('name_first') }
于 2013-05-29T15:03:38.837 回答