X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=roojs-debug.js;h=a228ec51fc925deddf08966b474ca05c59336e10;hb=HEAD;hp=ebe92d331d3fef6efc248fa03011cfb615ef602b;hpb=6892d65bd29535459fd48df743b5c2dd1494585b;p=roojs1 diff --git a/roojs-debug.js b/roojs-debug.js index ebe92d331d..a228ec51fc 100644 --- a/roojs-debug.js +++ b/roojs-debug.js @@ -2705,7 +2705,10 @@ Roo.lib.Event = function() { * @param {DomForm} form element * @return {String} urlencode form output. */ - serializeForm : function(form) { + serializeForm : function(form, include_disabled) { + + include_disabled = typeof(include_disabled) == 'undefined' ? false : include_disabled; + if(typeof form == 'string') { form = (document.getElementById(form) || document.forms[form]); } @@ -2713,7 +2716,7 @@ Roo.lib.Event = function() { var el, name, val, disabled, data = '', hasSubmit = false; for (var i = 0; i < form.elements.length; i++) { el = form.elements[i]; - disabled = form.elements[i].disabled; + disabled = include_disabled ? false : form.elements[i].disabled; name = form.elements[i].name; val = form.elements[i].value; @@ -43136,9 +43139,9 @@ Roo.extend(Roo.form.TextField, Roo.form.Field, { if(this.selectOnFocus){ this.on("focus", this.preFocus, this); } - if (!this.allowLeadingSpace) { - this.on('blur', this.cleanLeadingSpace, this); - } + if (!this.allowLeadingSpace) { + this.on('blur', this.cleanLeadingSpace, this); + } if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Roo.form.VTypes[this.vtype+'Mask']))){ this.el.on("keypress", this.filterKeys, this); @@ -43904,10 +43907,55 @@ Roo.extend(Roo.form.NumberField, Roo.form.TextField, { * if a valid character like '.' or '-' is left in the field with no number (defaults to "{value} is not a valid number") */ nanText : "{0} is not a valid number", - + + hiddenField : false, + + onRender : function(ct, position) + { + Roo.form.TextField.superclass.onRender.call(this, ct, position); + + //this.el.dom.removeAttribute('name'); + Roo.log("Changing name?"); + if (this.thousandSeparator != '') { + 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.parseValue(this.value) : ''; + this.el.on('blur', this.onBlur, this); + } + + // prevent input submission + + + + }, + onBlur : function(){ + this.beforeBlur(); + if(!Roo.isOpera && this.focusClass){ // don't touch in Opera + this.el.removeClass(this.focusClass); + } + this.hasFocus = false; + if(this.validationEvent !== false && this.validateOnBlur && this.validationEvent != "blur"){ + this.validate(); + } + var v = this.getValue(); + if(String(v) !== String(this.startValue)){ + this.setValue( this.parseValue(v)); + this.fireEvent('change', this, v, this.startValue); + } + this.fireEvent("blur", this); + }, + + // override name, so that it works with hidden field. + getName: function(){ + if (this.thousandSeparator != '') { + return this.name; + } + return Roo.form.TextField.superclass.getName.call(this); + }, // private initEvents : function(){ - Roo.form.NumberField.superclass.initEvents.call(this); + var allowed = "0123456789"; if(this.allowDecimals){ allowed += this.decimalSeparator; @@ -43960,7 +44008,7 @@ Roo.extend(Roo.form.NumberField, Roo.form.TextField, { // private parseValue : function(value){ - value = parseFloat(String(value).replace(this.decimalSeparator, ".").replace(this.thousandSeparator, '')); + value = parseFloat(String(value).replace(this.decimalSeparator, ".").split(this.thousandSeparator).join('')); return isNaN(value) ? '' : value; }, @@ -43979,6 +44027,11 @@ Roo.extend(Roo.form.NumberField, Roo.form.TextField, { v = Roo.util.Format.number(v, this.decimalPrecision, this.thousandSeparator); } Roo.form.NumberField.superclass.setValue.call(this, String(v).replace(".", this.decimalSeparator)); + if (this.hiddenField !== false) { + this.hiddenField.value = v ? this.parseValue(v) : ''; + } + + }, // private