我已经构建了一个underscore-js
用于呈现模板的系统,它在除 IE 之外的所有浏览器中都能正常工作。
这是模板的一个片段:
<td><input type="text" id="${_id}_name" class="name" value="${name}" /></td>
在 IE8 中,我将type=text
在实际文本字段中看到,如果name
提供的对象中是一个空字符串。
再深入一点,我发现 IE 8 中的下划线模板如下所示:
<tr id="319"><TD><INPUT id=319_name class=name value= type=text></TD>
其他浏览器下划线的输出是:
<td><input type="text" id="310_name" class="name" value=""></td>
所以很明显,属性值周围缺少引号导致了这个问题。
我也注意到了同样的问题jquery-tmpl
。
下面是一段代码,展示了如何设置模板:
template = _.template( tmpl );
$.each(data.data.stored, function(i, row) {
$('table#user_data').append(template.template(row));
任何想法如何/为什么会发生这种情况?