テンプレートのレンダリングに使用するシステムを構築しました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));
どのように/なぜこれが起こっているのでしょうか?