解释出现bug的场情:
第一步:页面中存在input的id与模板中${key}r的key相同
<input id='zt' />
<input id='bz' />
<input id='mc' />
第二步:建议jquery.tmpl模板
<!--模板-->
<script id="t_id_FlowRight" type="text/x-jquery-tmpl">
<input value='${mc}' />
<input value='${zt}' />
<input value='{{= bz}}' />
</script>
此时可以看到第一步中的input的id与第二步中的${key}中的key相同。
第三步:建立一个容器,用于显示模板生成的html
<div id="flowwrap" class="flowSetup"></div>
第四步:使用tmpl生成html
<script>
$("#t_id_FlowRight").tmpl({ "mc": "新审批步骤" }).appendTo("#flowwrap");
</script>
bug出现,如下图:
怕有的同学没有看明白,再解释一下:上图中有三3个input,第一个给了初始值是“新审批步骤”,但是其他两个文本框并没有初始值,应该是空,但是却显示出了[object HTMLInputElement]这样的值,这就出现了本文要解决的问题。
解决方案:
修改jquery.tmpl.js源码中其中的build函数,如下:
这样问题就解决了,不愿手敲代码的请下载: