年月日的表达使用combobox控件:
var zoneStore = new Ext.data.ArrayStore({ fields : ['cityzone'], data : [], sortInfo : { field : 'cityzone', direction : 'ASC' } }); var monthStore = new Ext.data.ArrayStore({ fields : [ 'month' ], data : [ [ '1' ], [ '2' ],[ '3' ], [ '4' ],[ '5' ], [ '6' ],[ '7' ], [ '8' ],[ '9' ], [ '10' ],[ '11' ], [ '12' ]] }); var dayStore = new Ext.data.SimpleStore({ fields:['day'], data:[['01'],['02'],['03'],['04'],['05'],['06'],['07'],['08'],['09'],['10'], ['11'],['12'],['13'],['14'],['15'],['16'],['17'],['18'],['19'],['20'], ['21'],['22'],['23'],['24'],['25'],['26'],['27'],['28'],['29'],['30'],['31']] }) { xtype:'label', text:'选择年份:', style:'color:red;'}, { xtype : 'combo', labelSeparator : '', width : 60, store : zoneStore, typeAhead : true, editable : false, triggerAction : 'all', mode : 'local', anchor : '96%', minWidth : 60, lazyInit : false, lazyRender : false, id : 'year', name : 'year', valueField : 'cityzone', displayField : 'cityzone' } ,'-', { xtype:'label', text:'选择月份:', style:'color:red;'}, { xtype : 'combo', labelSeparator : '', width : 60, store : monthStore, typeAhead : true, editable : false, triggerAction : 'all', mode : 'local', anchor : '96%', minWidth : 60, lazyInit : false, lazyRender : false, id : 'month', name : 'month', valueField : 'month', displayField : 'month', listeners:{ 'select' : function(){ initDay(); Ext.getCmp('day').setValue('01'); } } } ,'-', { xtype:'label', text:'日期:', style:'color:red;'}, { xtype : 'combo', labelSeparator : '', width : 60, store : dayStore, typeAhead : true, editable : false, triggerAction : 'all', mode : 'local', anchor : '96%', minWidth : 60, lazyInit : false, lazyRender : false, id : 'day', name : 'day', valueField : 'day', displayField : 'day' } /** * 根据年月初始化day的值 */ function initDay(){ MonDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var year = Ext.getCmp('year').getValue(); var month = Ext.getCmp('month').getValue(); // alert(year + ";" + month); var n = MonDays[month-1]; if(month=='2'&&isLeapYear(year)){ n++; } for(var i=1;i<=n;i++){ var dayrecord; if(i<10) dayrecord = new Ext.data.Record({'day':"0" + i}) else dayrecord = new Ext.data.Record({'day':i}) dayStore.add(dayrecord); } Ext.getCmp('day').store=dayStore; } /** * 判断是否闰年 * @param {} year * @return {} */ function isLeapYear(year){ return( year%4==0 || (year%100 ==0 && year%400 == 0)); } var nowyear=new Date().getFullYear(); intyear=Number(nowyear) ; var yeardata = [[intyear-5],[intyear-4],[intyear-3],[intyear-2],[intyear-1],[intyear]]; zoneStore.loadData(yeardata); initDay();