X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..refs/heads/old:/src/widgets/form/TextArea.js?ds=sidebyside diff --git a/src/widgets/form/TextArea.js b/src/widgets/form/TextArea.js index 0d2a4217..a63117ac 100644 --- a/src/widgets/form/TextArea.js +++ b/src/widgets/form/TextArea.js @@ -1,8 +1,8 @@ /*! - * Ext JS Library 3.0.0 - * Copyright(c) 2006-2009 Ext JS, LLC - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ /** * @class Ext.form.TextArea @@ -26,13 +26,13 @@ Ext.form.TextArea = Ext.extend(Ext.form.TextField, { */ growMax: 1000, growAppend : ' \n ', - growPad : Ext.isWebKit ? -6 : 0, enterIsSpecial : false, /** * @cfg {Boolean} preventScrollbars true to prevent scrollbars from appearing regardless of how much text is - * in the field (equivalent to setting overflow: hidden, defaults to false) + * in the field. This option is only relevant when {@link #grow} is true. Equivalent to setting overflow: hidden, defaults to + * false. */ preventScrollbars: false, /** @@ -64,7 +64,7 @@ Ext.form.TextArea = Ext.extend(Ext.form.TextField, { }, onDestroy : function(){ - Ext.destroy(this.textSizeEl); + Ext.removeNode(this.textSizeEl); Ext.form.TextArea.superclass.onDestroy.call(this); }, @@ -73,13 +73,17 @@ Ext.form.TextArea = Ext.extend(Ext.form.TextField, { this.fireEvent("specialkey", this, e); } }, - + // private - onKeyUp : function(e){ - if(!e.isNavKeyPress() || e.getKey() == e.ENTER){ - this.autoSize(); + doAutoSize : function(e){ + return !e.isNavKeyPress() || e.getKey() == e.ENTER; + }, + + // inherit docs + filterValidation: function(e) { + if(!e.isNavKeyPress() || (!this.enterIsSpecial && e.keyCode == e.ENTER)){ + this.validationTask.delay(this.validationDelay); } - Ext.form.TextArea.superclass.onKeyUp.call(this, e); }, /** @@ -90,23 +94,22 @@ Ext.form.TextArea = Ext.extend(Ext.form.TextField, { if(!this.grow || !this.textSizeEl){ return; } - var el = this.el; - var v = el.dom.value; - var ts = this.textSizeEl; - ts.innerHTML = ''; - ts.appendChild(document.createTextNode(v)); - v = ts.innerHTML; + var el = this.el, + v = Ext.util.Format.htmlEncode(el.dom.value), + ts = this.textSizeEl, + h; + Ext.fly(ts).setWidth(this.el.getWidth()); if(v.length < 1){ v = "  "; }else{ v += this.growAppend; if(Ext.isIE){ - v = v.replace(/\n/g, '
'); + v = v.replace(/\n/g, ' 
'); } } ts.innerHTML = v; - var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin) + this.growPad); + h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin)); if(h != this.lastHeight){ this.lastHeight = h; this.el.setHeight(h);