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

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




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

下载修改后的源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值