解决jquery.tmpl.js的BUG,页面上存在与${key}键值相同的id名,则出现object HTMLInputElement之类的默认值

来源:互联网 发布:c语言中文网vip分享 编辑:程序博客网 时间:2024/05/18 04:18

解释出现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函数,如下:




这样问题就解决了,不愿手敲代码的请下载:

下载修改后的源码

阅读全文
0 0
原创粉丝点击