修改Ext.form.DateField:onTriggerClick : function () ... {if(this.disabled)...{return;}if(this.menu == null)...{this.menu = new Ext.menu.DateMenu();}Ext.apply(this.menu.picker, ...{minDate : this.minValue,maxDate : this.maxValue,disabledDatesRE : this.ddMatch,disabledDatesText : this.disabledDatesText,disabledDays : this.disabledDays,disabledDaysText : this.disabledDaysText,format : this.format,minText : String.format(this.minText, this.formatDate(this.minValue)),maxText : String.format(this.maxText, this.formatDate(this.maxValue)),input: this//davi});this.menu.on(Ext.apply(...{}, this.menuListeners, ...{scope:this}));this.menu.picker.setValue(this.getValue() || new Date());this.menu.show(this.el, "tl-bl?");} ...修改Ext.DatePicker:...onRender : function (container, position) ... {//增加id:date_daysdate_bottom 用来隐藏days davivar m = ['<table cellspacing="0">','<tr><td class="x-date-left"><a href="#" title="', this.prevText ,'">*</a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="', this.nextText ,'">*</a></td></tr>','<tr id="date_days"><td colspan="3"><table class="x-date-inner" cellspacing="0"><thead><tr>'];...m[m.length] = '</tr></tbody></table></td></tr><tr id="date_bottom"><td colspan="3" class="x-date-bottom" align="center"></td></tr></table>';...if(Ext.isIE)...{this.el.repaint();}this.update(this.value);...//如果日期格式为Y年m月 则不显示日 daviif(this.format == 'Y年m月')...{Ext.get('date_days').hide();Ext.get('date_bottom').hide();}/**//**/} ,update : function (date) ... {...for(; i < 42; i++) ...{textEls[i].innerHTML = (++extraDays);d.setDate(d.getDate()+1);cells[i].className = "x-date-nextday";setCellClass(this, cells[i]);}//如果日期格式为Y年m月 则不显示日 daviif(this.format == 'Y年m月' && this.getValue() != date)...{this.input.setValue(date);this.input.fireEvent("select", date, this.input);}/**//**/...} 用法: var date = new Ext.form.DateField( ... {...format: 'Y年m月',...} );date.applyTo( ' date ' );date.on( ' select ' , function () ... {...} );