日期:2014-05-16 浏览次数:20486 次
一。一些废话
??? 废话的不说!开代码
二。截图

三。代码结构
Ext.ns('Ext.sy');
Ext.sy.SearchDateField = Ext.extend(Ext.form.TwinTriggerField, {
format : "Y-m-d",
editable :false,
altFormats : "m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j",
disabledDaysText : "Disabled",
disabledDatesText : "Disabled",
minText : "The date in this field must be equal to or after {0}",
maxText : "The date in this field must be equal to or before {0}",
invalidText : "{0} is not a valid date - it must be in the format {1}",
trigger1Class : 'x-form-date-trigger',
trigger2Class : 'x-form-clear-trigger',
hideTrigger2:true,
showToday : true,
startDay : 0,
defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"},
initTime: '12',
initTimeFormat: 'H',
width:180,
hasSearch : false,
safeParse : function(value, format) {
if (Date.formatContainsHourInfo(format)) {
return Date.parseDate(value, format);
} else {
var parsedDate = Date.parseDate(value + ' ' + this.initTime, format + ' ' + this.initTimeFormat);
if (parsedDate) {
return parsedDate.clearTime();
}
}
},
initComponent : function(){
Ext.sy.SearchDateField.superclass.initComponent.call(this);
this.addEvents(
'select'
);
if(Ext.isString(this.minValue)){
this.minValue = this.parseDate(this.minValue);
}
if(Ext.isString(this.maxValue)){
this.maxValue = this.parseDate(this.maxValue);
}
this.disabledDatesRE = null;
this.initDisabledDays();
},
initEvents: function() {
Ext.sy.SearchDateField.superclass.initEvents.call(this);
this.keyNav = new Ext.KeyNav(this.el, {
"down": function(e) {
this.onTrigger1Click();
},
scope: this,
forceKeyDown: true
});
},
initDisabledDays : function(){
if(this.disabledDates){
var dd = this.disabledDates,
len = dd.length - 1,
re = "(?:";
Ext.each(dd, function(d, i){
re += Ext.isDate(d) ? '^' + Ext.escapeRe(d.dateFormat(this.format)) + '$' : dd[i];
if(i != len){
re += '|';
}
}, this);
this.disabledDatesRE = new RegExp(re + ')');
}
},
setDisabledDates : function(dd){
this.disabledDates = dd;
this.initDisabledDays();
if(this.menu){
this.menu.picker.setDisabledDates(this.disabledDatesRE);
}
},
setDisabledDays : function(dd){
this.disabledDays = dd;
if(this.menu){
this.menu.picker.setDisabledDays(dd);
}
},
setMinValue : function(dt){
this.minValue = (Ext.isString(dt) ? this.parseDate(dt) : dt);
if(this.menu){
this.menu.picker.setMinDate(this.minValue);
}
},
setMaxValue : function(dt){
this.maxValue = (Ext.isString(dt) ? this.parseDate(dt) : dt);
if(this.menu){
this.menu.picker.setMaxDate(this.maxValue);
}
},
getErrors: function(value) {
var errors = Ext.sy.SearchDateField.superclass.getErrors.apply(this, arguments);
value = this.formatDate(value || this.processValue(this.getRawValue()));
if (value.length < 1) {
return errors;
}
var svalue = value;
value = this.parseDate(value);
if (!value) {
errors.push(String.format(this.invalidText, svalue, this.format));