Extjs DateField Bug 当format为年月'Y-m',在当前月(30、31号)选择其他偶数月会乱跳的问题解决方案
2015-08-03 10:20
691 查看
Ext.form.WMDateField=Ext.extend(Ext.form.DateField,{ safeParse:function(value,format){ if(/[gGhH]/.test(format.replace(/(\\.)/g,''))){ returnDate.parseDate(value,format); }elseif("Y-m"==format){ varparsedDate=Date.parseDate(value+'-01'+this.initTime,format+'-d'+this.initTimeFormat); if(parsedDate){ returnparsedDate.clearTime(); } }elseif("Ym"==format){ varparsedDate=Date.parseDate(value+'01'+this.initTime,format+'d'+this.initTimeFormat); if(parsedDate){ returnparsedDate.clearTime(); } }else{ varparsedDate=Date.parseDate(value+''+this.initTime,format+''+this.initTimeFormat); if(parsedDate){ returnparsedDate.clearTime(); } } } }); Ext.reg('wmdatefield',Ext.form.WMDateField);
日期控件定义为下面的方法:
[{ fieldLabel:'日期', xtype:'wmdatefield', format:'Y-m' }]
引用----http://blog.sina.com.cn/s/blog_454fbf7401011401.html
然并卵,最终解决方案是:
改成
format:'Y-m-d',然后在选择日期控件中加入下面判断,也就是下个月的00天,也就是所选择的这个月的最后一天。
//当format参数值为Y时,设置值,并激发select事件
if(this.format.indexOf('d')!=-1&&this.getValue()!=date){
varresult=null;
varyear=date.getFullYear();
varmonth=date.getMonth()+1;
varday=00;
varNdate=newDate(year,month,day);
if(Ndate)
{
this.setValue(Ndate.clearTime());
}
else
{
this.setValue(date);
}
this.fireEvent('select',this,this.value);
}
相关文章推荐
- 【阅读】《head first html5》第十章——《运用javascript》(实际上的javascript线程)
- JS判断是什么设备是什么浏览器-主要用移动页面开发
- Angular Js ng-repeat指令
- Javascript刷新页面的几种方法
- JS拖拽插件实现步骤
- js闭包初体验
- javascript实现的淘宝旅行通用日历组件用法实例
- jsp路径问题
- Jsoup
- javascript简单实现类似QQ头像弹出效果的方法
- URL、枚举和XML解析、Json解析(8.3)
- js时间日期的添加方法
- Javascript实例教程:querySelector()方...
- js数组去重
- JavaScript权威指南_146_第15章_脚本化文档_15.10-其他文档特性-Document的属性
- Javascript日期与C# DateTime 转换
- 使用jsoup爬虫抓取页面
- 我的js:冒泡排序算法选择排序算法以及快速排序算法。
- javascript简单实现类似QQ头像弹出效果的方法
- javascript实现的淘宝旅行通用日历组件用法实例