textarea.js

来自「php绿色服务器,让大家试用greenamp」· JavaScript 代码 · 共 108 行

JS
108
字号
/*
 * Ext JS Library 1.0.1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */

/** * @class Ext.form.TextArea * @extends Ext.form.TextField * Multiline text field.  Can be used as a direct replacement for traditional textarea fields, plus adds * support for auto-sizing. * @constructor * Creates a new TextArea * @param {Object} config Configuration options */Ext.form.TextArea = function(config){    Ext.form.TextArea.superclass.constructor.call(this, config);    // these are provided exchanges for backwards compat    // minHeight/maxHeight were replaced by growMin/growMax to be    // compatible with TextField growing config values    if(this.minHeight !== undefined){        this.growMin = this.minHeight;    }    if(this.maxHeight !== undefined){        this.growMax = this.maxHeight;    }};Ext.extend(Ext.form.TextArea, Ext.form.TextField,  {    /**     * @cfg {Number} growMin The minimum height to allow when grow = true (defaults to 60)     */    growMin : 60,    /**     * @cfg {Number} growMax The maximum height to allow when grow = true (defaults to 1000)     */    growMax: 1000,    /**     * @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)     */    preventScrollbars: false,    // private    onRender : function(ct, position){        if(!this.el){            this.defaultAutoCreate = {                tag: "textarea",                style:"width:300px;height:60px;",                autocomplete: "off"            };        }        Ext.form.TextArea.superclass.onRender.call(this, ct, position);        if(this.grow){            this.textSizeEl = Ext.DomHelper.append(document.body, {                tag: "pre", cls: "x-form-grow-sizer"            });            if(this.preventScrollbars){                this.el.setStyle("overflow", "hidden");            }            this.el.setHeight(this.growMin);        }    },    // private    onKeyUp : function(e){        if(!e.isNavKeyPress() || e.getKey() == e.ENTER){            this.autoSize();        }    },    /**     * Automatically grows the field to accomodate the height of the text up to the maximum field height allowed.     * This only takes effect if grow = true and fires the autosize event.     */    autoSize : function(){        if(!this.grow || !this.textSizeEl){            return;        }        var el = this.el;        var v = el.dom.value;        var ts = this.textSizeEl;        Ext.fly(ts).setWidth(this.el.getWidth());        if(v.length < 1){            v = "&#160;&#160;";        }else{            v += "&#160;\n&#160;";        }        if(Ext.isIE){            v = v.replace(/\n/g, '<br />');        }        ts.innerHTML = v;        var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin));        if(h != this.lastHeight){            this.lastHeight = h;            this.el.setHeight(h);            this.fireEvent("autosize", this, h);        }    },    // private    setValue : function(v){        Ext.form.TextArea.superclass.setValue.call(this, v);        this.autoSize();    }});

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?