Ext4 重写年月控件(解决31号选择其它月份会跳月的问题)
来源:互联网 发布:淘宝男款白衬衫 编辑:程序博客网 时间:2024/05/22 02:25
Ext 文件MonthField.js,,,,,,,,,2012-6-4最终修改;
修改了年月控件也有跳月的情况,改情况为当天为xxxx-xx-31号时.选择2月会跳到三月的问题.
这个情况会在所有日期控件的中发生.是ext目前没有处理的一个问题.该解决我在我的前个文章中也写了.
现在OK了.大家请尽情的使用吧.如有其它bug请大家解决后把自己的代码放上来参考...
Ext.define('Ext.form.field.Month', { extend: 'Ext.form.field.Date', alias: 'widget.monthfield', requires: ['Ext.picker.Month'], alternateClassName: ['Ext.form.MonthField', 'Ext.form.Month'], selectMonth: null, createPicker: function () { var me = this, format = Ext.String.format; return Ext.create('Ext.picker.Month', { pickerField: me, ownerCt: me.ownerCt, renderTo: document.body, floating: true, hidden: true, focusOnShow: true, minDate: me.minValue, maxDate: me.maxValue, disabledDatesRE: me.disabledDatesRE, disabledDatesText: me.disabledDatesText, disabledDays: me.disabledDays, disabledDaysText: me.disabledDaysText, format: me.format, showToday: me.showToday, startDay: me.startDay, minText: format(me.minText, me.formatDate(me.minValue)), maxText: format(me.maxText, me.formatDate(me.maxValue)), listeners: { select: { scope: me, fn: me.onSelect }, monthdblclick: { scope: me, fn: me.onOKClick }, yeardblclick: { scope: me, fn: me.onOKClick }, OkClick: { scope: me, fn: me.onOKClick }, CancelClick: { scope: me, fn: me.onCancelClick } }, keyNavConfig: { esc: function () { me.collapse(); } } }); }, onCancelClick: function () { var me = this; me.selectMonth = null; me.collapse(); }, onOKClick: function () { var me = this; if (me.selectMonth) { me.setValue(me.selectMonth); me.fireEvent('select', me, me.selectMonth); } me.collapse(); }, onSelect: function (m, d) { var me = this; me.selectMonth = new Date((d[0] + 1) + '/1/' + d[1]); },//这个很重要.否则选择月份的时候会跳到下一个月 safeParse : function(value, format) { var me = this, utilDate = Ext.Date, result = null, strict = me.useStrict, parsedDate; if (utilDate.formatContainsHourInfo(format)) { result = utilDate.parse(value, format, strict); } else { if (format == 'Y-m') { value = value + '-01'; format = 'Y-m-d'; } parsedDate = utilDate.parse(value + ' ' + me.initTime, format + ' ' + me.initTimeFormat, strict); if (parsedDate) { result = utilDate.clearTime(parsedDate); } } return result; } });
Html 文件引用
Ext.onReady(function () {Ext.create('Ext.form.Panel', { renderTo: Ext.getBody(), width: 300, bodyPadding: 10, title: 'Dates', items: [{ xtype: 'monthfield', submitFormat: 'Y-m-01', name: 'month', fieldLabel: 'month', format: 'Y-m', listeners: { select: { fn: function(field, value, eOpts){ //field.的日期还是以当前日期最高值出现 alert(Ext.util.Format.date(field.getValue(),"Y-m-d") + " ****** " + Ext.util.Format.date(value,"Y-m-d")); } } } }, { xtype: 'datefield', submitFormat: 'Y-m-d', name: 'date', fieldLabel: 'date' }], buttons: [ { text: 'send', handler: function () { Ext.Msg.alert('Form will submit:', this.up('form').getForm().getValues(true)); } } ]});});
- Ext4 重写年月控件(解决31号选择其它月份会跳月的问题)
- bootstrap的datetimepicker控件只选择年月的配置
- EXTJS5 实现一个只能选择年月的控件
- 用到日期控件后,点其它按钮也会出现日期控件的问题
- 月份选择控件
- 重写easyUI日期控件,只限制年月
- 计算所在年月的月份天数
- JavaScript给定年月 获取月份的天数
- 输入年月 返回当前月份的天数
- datepicker 增加选择年月及自定义到某个月份
- Ext DateField控件 - 只选择年月
- Ext DateField控件 - 只选择年月
- Ext DateField控件 - 只选择年月
- JQuery---选择年月的插件
- JQuery---选择年月的插件
- JQuery---选择年月的插件
- JavaScript 日期、月份选择控件
- 解决bootstarp-datetimepicker 默认年月模式,默认月份比实际月份多两个月bug
- TreeView默认展开所有节点
- 如何在SDI中创建多框架视图
- 详解MYSQL数据库密码的加密方式及破解方法(4)
- shell 参数
- partition by的用法
- Ext4 重写年月控件(解决31号选择其它月份会跳月的问题)
- liferay瘦身(4)--代码删除
- 深入研究析构函数
- 内联函数
- Eclipse 中文插件的安装
- 怎么给myEclipse 设置自动弹出的快捷键
- 做个有激情的程序员
- 【学习点滴-数据结构-二叉树】二叉查找树转换成双链表
- SAP 《MM学习指南》操作记录---- 采购合同