1

我已經構建了一個系統,使用underscore-js來呈現模板,並且它在所有瀏覽器中都能正常工作,但在IE中運行正常。IE 8下劃線-js模板/ jquery奇怪的結果與模板中的輸入標籤

這裏是模板的片段:

<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)); 

任何想法如何/爲什麼這可能是發生?

回答

3

好的,找到解決方案。我發現jQuery的TMPL的github上,這裏提出的問題:

https://github.com/jquery/jquery-tmpl/issues/3

顯然,它是由IE序列化HTML的方式造成的,和周圍的工作是把一些空格標籤。所以:

$ {name}變成$ {name}