X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Roo%2Fform%2FDateField.js;h=2f96d0b407dfce42f8ea9513d69156756a9c17db;hb=0705b9209b1625c041368fa457b7502e29c0c5b6;hp=561afba0af7fcb08c2f042368105c94ca3147c7d;hpb=c00028611c09cd9f8582286f884e3b2906aa8707;p=roojs1 diff --git a/Roo/form/DateField.js b/Roo/form/DateField.js index 561afba0af..2f96d0b407 100644 --- a/Roo/form/DateField.js +++ b/Roo/form/DateField.js @@ -17,7 +17,8 @@ * Create a new DateField * @param {Object} config */ -Roo.form.DateField = function(config){ +Roo.form.DateField = function(config) +{ Roo.form.DateField.superclass.constructor.call(this, config); this.addEvents({ @@ -33,15 +34,21 @@ Roo.form.DateField = function(config){ }); - if(typeof this.minValue == "string") this.minValue = this.parseDate(this.minValue); - if(typeof this.maxValue == "string") this.maxValue = this.parseDate(this.maxValue); + if(typeof this.minValue == "string") { + this.minValue = this.parseDate(this.minValue); + } + if(typeof this.maxValue == "string") { + this.maxValue = this.parseDate(this.maxValue); + } this.ddMatch = null; if(this.disabledDates){ var dd = this.disabledDates; var re = "(?:"; for(var i = 0; i < dd.length; i++){ re += dd[i]; - if(i != dd.length-1) re += "|"; + if(i != dd.length-1) { + re += "|"; + } } this.ddMatch = new RegExp(re + ")"); } @@ -150,7 +157,9 @@ Roo.extend(Roo.form.DateField, Roo.form.TriggerField, { { Roo.form.DateField.superclass.onRender.call(this, ct, position); if (this.useIso) { - this.el.dom.removeAttribute('name'); + //this.el.dom.removeAttribute('name'); + Roo.log("Changing name?"); + this.el.dom.setAttribute('name', this.name + '____hidden___' ); this.hiddenField = this.el.insertSibling({ tag:'input', type:'hidden', name: this.name }, 'before', true); this.hiddenField.value = this.value ? this.formatDate(this.value, 'Y-m-d') : ''; @@ -166,6 +175,7 @@ Roo.extend(Roo.form.DateField, Roo.form.TriggerField, { { value = this.formatDate(value); if(!Roo.form.DateField.superclass.validateValue.call(this, value)){ + Roo.log('super failed'); return false; } if(value.length < 1){ // if it's blank and textfield didn't flag it then it's valid @@ -174,6 +184,7 @@ Roo.extend(Roo.form.DateField, Roo.form.TriggerField, { var svalue = value; value = this.parseDate(value); if(!value){ + Roo.log('parse date failed' + svalue); this.markInvalid(String.format(this.invalidText, svalue, this.format)); return false; } @@ -208,6 +219,14 @@ Roo.extend(Roo.form.DateField, Roo.form.TriggerField, { validateBlur : function(){ return !this.menu || !this.menu.isVisible(); }, + + getName: function() + { + // returns hidden if it's set.. + if (!this.rendered) {return ''}; + return !this.hiddenName && this.el.dom.name ? this.el.dom.name : (this.hiddenName || ''); + + }, /** * Returns the current date value of the date field. @@ -246,6 +265,10 @@ dateField.setValue('2006-5-4'); this.hiddenField.value = this.formatDate(this.parseDate(date), 'Y-m-d'); } Roo.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date))); + // make sure the value field is always stored as a date.. + this.value = this.parseDate(date); + + }, // private @@ -254,7 +277,7 @@ dateField.setValue('2006-5-4'); return value; } var v = Date.parseDate(value, this.format); - if (this.useIso) { + if (!v && this.useIso) { v = Date.parseDate(value, 'Y-m-d'); } if(!v && this.altFormats){ @@ -277,6 +300,7 @@ dateField.setValue('2006-5-4'); // private menuListeners : { select: function(m, d){ + this.setValue(d); this.fireEvent('select', this, d); }, @@ -325,13 +349,32 @@ dateField.setValue('2006-5-4'); if(v){ this.setValue(v); } - } + }, - /** @cfg {Boolean} grow @hide */ - /** @cfg {Number} growMin @hide */ - /** @cfg {Number} growMax @hide */ - /** - * @hide - * @method autoSize + /*@ + * overide + * */ + isDirty : function() { + if(this.disabled) { + return false; + } + + if(typeof(this.startValue) === 'undefined'){ + return false; + } + + return String(this.getValue()) !== String(this.startValue); + + }, + // @overide + cleanLeadingSpace : function(e) + { + if ( this.inputType == 'file') { + return; + } + + this.setValue((this.getValue() + '').replace(/^\s+/,'')); + } + }); \ No newline at end of file