本文主要是介绍使用clone()后,解决ui.datepicker 显示问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在将InfoPath web化处理中,遇到重复节,可以使用clone() 的方法将重复节进行复制,但是,日期选择器无法显示。
通过调试,找到 input 控件,click事件是生效的,证明问题是datepicker的原因。
ui.datepicker.js debug in vs2008, 添加断点,发现
datepicker.js 对 input 控件会自动生成一个id,
145行:
target.id = 'dp' + (++this.uuid);
$.datepicker.uuid = new Date().getTime();
同时,在将 datepicker 附加到 input 控件的时候,
166行:
如果发现input 控件有this.markerClassName 样式 ( markerClassName: 'hasDatepicker', 109行),则跳出function,不再进行附加。
这样做是正确的,防止点击input 控件后,附加多个datepicker。
但是,当clone() 后,导致无法附加datepicker。
解决方案:
首先,将input 控件的id 自增1;
然后,去掉 input 控件的'hasDatepicker' 样式:
备注: 有时候我们单独调用ui.datepicker.js不能解决问题的时候,需要查看源文件,找到问题所在。
这篇关于使用clone()后,解决ui.datepicker 显示问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!