JQuery UI Datepicker在克隆操作的冲突问题
来源:互联网 发布:灵云7.1手写输入软件 编辑:程序博客网 时间:2024/06/05 13:25
页面上使用jquery的克隆操作克隆出来N个input,input的形式为:
<input class=dtp name="startdate" value="" />
这时候查看源码,会给它一个默认的ID,当克隆操作后,datepicker控件会给新的input另外的ID,形如:
<input name="startdate" class="dtp hasDatepicker" id="dp1346815027717" />
这时候注意到不仅仅是多了个id,而且在class里面还多了个hasDatepicker,多出来的class是为了避免在多个input时,点击一个Input会弹出很多控件的问题。
这个问题的参考:http://blog.csdn.net/spring21st/article/details/5629124
作者的解决思路是使用removeClass的方法来去掉本来多出来的hasDaepicker,但是这样做,新的问题又会出现:
打开页面时,页面上只有一个input,当选择数量为2时,有两个input,当选择数量为3时,会有3个input,并且它们的class都是dtp.
曾经有人说过,如果把原始的input的class设置为dtp,那么克隆出来的设置为dtp2即可。问题是如果在两个的基础上再增加一个的话,这种办法就不可取了。如果选择空间数量的控件是个select,默认1,如果直接选择3,那么这三个日历控件都可以用,如果先选择3,后来发现少一个,又选择了4,那么对于第四个日历控件就不能弹出。
也就是说,页面初始化时,给dtp本身一个方法,就是默认的加载日历控件的方法:
$(function(){ // Datepicker $('.dtp').datepicker({ numberOfMonths:1, showButtonPanel:false, dateFormat: 'yy-mm-dd', minDate: new Date() }); });页面上的Input class为dtp。
需要克隆的那部分把它的input的class设置为dtp2,于是就有了如下的代码:
$('.dtp2').datepicker({ numberOfMonths:1, showButtonPanel:false, dateFormat: 'yy-mm-dd', minDate: new Date() });
上面说过了,这个方法在仅仅出现一次的情况下可以用,但是对于多次选择数量时就不起左右了,新克隆出来的input不会弹出日历控件。如果使用上述的removeClass方法,则会弹出控件,但是点击日期之后,还会在第一个Input中改变日期,而不是当前点击的那个input中出现日期。
就是把dtp2的那行代码改为:
$('.dtp2').attr("id", ++$.datepicker.uuid).removeClass("hasDatepicker").datepicker({ numberOfMonths:1, showButtonPanel:false, dateFormat: 'yy-mm-dd', minDate: new Date() });
这个问题出现的原因很简单,是因为控件没有和当前发生动作的input绑定。
解决的办法(得益于思路http://yiqi1943.blog.163.com/blog/static/336203722011111342240290/):
$('.dtp2').each(function() { $(this).attr("id", ++$.datepicker.uuid).removeClass("hasDatepicker").datepicker({numberOfMonths:1,showButtonPanel:false,changeYear: true,changeMonth: true,dateFormat: 'yy-mm-dd',defaultDate: '1970-01-01' });});
这段代码写在克隆操作之后,完美解决。
- JQuery UI Datepicker在克隆操作的冲突问题
- jQuery UI在Server 2008 IE8下DatePicker问题修复
- jquery-ui datepicker插件在页面第二次点击时无效的问题
- Jquery ui Datepicker 的汉化
- jquery ui dialog里调用datepicker的问题
- jquery ui dialog里调用datepicker的问题
- jquery UI datepicker 增加 时间的选择。
- Jquery UI的datepicker插件使用方法
- jquery ui 中 datepicker的汉化
- jquery-ui-datepicker插件的使用
- JQuery-UI中的datepicker的使用
- 基于jquery.ui的datepicker用法。
- JQuery UI - datepicker
- jquery ui datepicker使用
- Jquery UI datepicker 实用
- jquery ui datepicker详解
- jquery ui datepicker demo
- jquery ui datepicker
- PHP5.4最新特性
- iPhone开发网站、论坛和博客
- 天黑请闭眼
- 通过编程自动化增加CSDN博客的访问量
- Android内核和驱动篇-Android内核介绍
- JQuery UI Datepicker在克隆操作的冲突问题
- zencart 产品页调用当前分类的分类名称和url 方法
- 第1节 USB通信基本知识概
- 语音识别总结
- mysq存储过程学习笔记
- 互动中国分享: 34个iOS设计师的工具和资源
- 大根堆 小根堆
- cocos2d-x 学习: CCTextureAtlas 简介
- jQuery学习笔记2 文本框水印提示