亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? textfield.js

?? ext js demo ext學習資料
?? JS
字號:
/*
 * Ext JS Library 1.1 RC 1
 * Copyright(c) 2006-2007, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://www.extjs.com/license
 */

/** * @class Ext.form.TextField * @extends Ext.form.Field * Basic text field.  Can be used as a direct replacement for traditional text inputs, or as the base * class for more sophisticated input controls (like {@link Ext.form.TextArea} and {@link Ext.form.ComboBox}). * @constructor * Creates a new TextField * @param {Object} config Configuration options */Ext.form.TextField = function(config){    Ext.form.TextField.superclass.constructor.call(this, config);    this.addEvents({        /**         * @event autosize         * Fires when the autosize function is triggered.  The field may or may not have actually changed size         * according to the default logic, but this event provides a hook for the developer to apply additional         * logic at runtime to resize the field if needed.	     * @param {Ext.form.Field} this This text field	     * @param {Number} width The new field width	     */        autosize : true    });};Ext.extend(Ext.form.TextField, Ext.form.Field,  {    /**     * @cfg {Boolean} grow True if this field should automatically grow and shrink to its content     */    grow : false,    /**     * @cfg {Number} growMin The minimum width to allow when grow = true (defaults to 30)     */    growMin : 30,    /**     * @cfg {Number} growMax The maximum width to allow when grow = true (defaults to 800)     */    growMax : 800,    /**     * @cfg {String} vtype A validation type name as defined in {@link Ext.form.VTypes} (defaults to null)     */    vtype : null,    /**     * @cfg {String} maskRe An input mask regular expression that will be used to filter keystrokes that don't match (defaults to null)     */    maskRe : null,    /**     * @cfg {Boolean} disableKeyFilter True to disable input keystroke filtering (defaults to false)     */    disableKeyFilter : false,    /**     * @cfg {Boolean} allowBlank False to validate that the value length > 0 (defaults to true)     */    allowBlank : true,    /**     * @cfg {Number} minLength Minimum input field length required (defaults to 0)     */    minLength : 0,    /**     * @cfg {Number} maxLength Maximum input field length allowed (defaults to Number.MAX_VALUE)     */    maxLength : Number.MAX_VALUE,    /**     * @cfg {String} minLengthText Error text to display if the minimum length validation fails (defaults to "The minimum length for this field is {minLength}")     */    minLengthText : "The minimum length for this field is {0}",    /**     * @cfg {String} maxLengthText Error text to display if the maximum length validation fails (defaults to "The maximum length for this field is {maxLength}")     */    maxLengthText : "The maximum length for this field is {0}",    /**     * @cfg {Boolean} selectOnFocus True to automatically select any existing field text when the field receives input focus (defaults to false)     */    selectOnFocus : false,    /**     * @cfg {String} blankText Error text to display if the allow blank validation fails (defaults to "This field is required")     */    blankText : "This field is required",    /**     * @cfg {Function} validator A custom validation function to be called during field validation (defaults to null).     * If available, this function will be called only after the basic validators all return true, and will be passed the     * current field value and expected to return boolean true if the value is valid or a string error message if invalid.     */    validator : null,    /**     * @cfg {RegExp} regex A JavaScript RegExp object to be tested against the field value during validation (defaults to null).     * If available, this regex will be evaluated only after the basic validators all return true, and will be passed the     * current field value.  If the test fails, the field will be marked invalid using {@link #regexText}.     */    regex : null,    /**     * @cfg {String} regexText The error text to display if {@link #regex} is used and the test fails during validation (defaults to "")     */    regexText : "",    /**     * @cfg {String} emptyText The default text to display in an empty field (defaults to null).     */    emptyText : null,    /**     * @cfg {String} emptyClass The CSS class to apply to an empty field to style the {@link #emptyText} (defaults to     * 'x-form-empty-field').  This class is automatically added and removed as needed depending on the current field value.     */    emptyClass : 'x-form-empty-field',    // private    initEvents : function(){        Ext.form.TextField.superclass.initEvents.call(this);        if(this.validationEvent == 'keyup'){            this.validationTask = new Ext.util.DelayedTask(this.validate, this);            this.el.on('keyup', this.filterValidation, this);        }        else if(this.validationEvent !== false){            this.el.on(this.validationEvent, this.validate, this, {buffer: this.validationDelay});        }        if(this.selectOnFocus || this.emptyText){            this.on("focus", this.preFocus, this);            if(this.emptyText){                this.on('blur', this.postBlur, this);                this.applyEmptyText();            }        }        if(this.maskRe || (this.vtype && this.disableKeyFilter !== true && (this.maskRe = Ext.form.VTypes[this.vtype+'Mask']))){            this.el.on("keypress", this.filterKeys, this);        }        if(this.grow){            this.el.on("keyup", this.onKeyUp,  this, {buffer:50});            this.el.on("click", this.autoSize,  this);        }    },    processValue : function(value){        if(this.stripCharsRe){            var newValue = value.replace(this.stripCharsRe, '');            if(newValue !== value){                this.setRawValue(newValue);                return newValue;            }        }        return value;    },    filterValidation : function(e){        if(!e.isNavKeyPress()){            this.validationTask.delay(this.validationDelay);        }    },    // private    onKeyUp : function(e){        if(!e.isNavKeyPress()){            this.autoSize();        }    },    /**     * Resets the current field value to the originally-loaded value and clears any validation messages.     * Also adds emptyText and emptyClass if the original value was blank.     */    reset : function(){        Ext.form.TextField.superclass.reset.call(this);        this.applyEmptyText();    },    applyEmptyText : function(){        if(this.rendered && this.emptyText && this.getRawValue().length < 1){            this.setRawValue(this.emptyText);            this.el.addClass(this.emptyClass);        }    },    // private    preFocus : function(){        if(this.emptyText){            if(this.el.dom.value == this.emptyText){                this.setRawValue('');            }            this.el.removeClass(this.emptyClass);        }        if(this.selectOnFocus){            this.el.dom.select();        }    },    // private    postBlur : function(){        this.applyEmptyText();    },    // private    filterKeys : function(e){        var k = e.getKey();        if(!Ext.isIE && (e.isNavKeyPress() || k == e.BACKSPACE || (k == e.DELETE && e.button == -1))){            return;        }        if(Ext.isIE && (k == e.BACKSPACE || k == e.DELETE || e.isNavKeyPress() || k == e.HOME || k == e.END)){            return;        }        var c = e.getCharCode();        if(!this.maskRe.test(String.fromCharCode(c) || '')){            e.stopEvent();        }    },    setValue : function(v){        if(this.emptyText && this.el && v !== undefined && v !== null && v !== ''){            this.el.removeClass(this.emptyClass);        }        Ext.form.TextField.superclass.setValue.apply(this, arguments);        this.applyEmptyText();        this.autoSize();    },    /**     * Validates a value according to the field's validation rules and marks the field as invalid     * if the validation fails     * @param {Mixed} value The value to validate     * @return {Boolean} True if the value is valid, else false     */    validateValue : function(value){        if(value.length < 1 || value === this.emptyText){ // if it's blank             if(this.allowBlank){                 this.clearInvalid();                 return true;             }else{                 this.markInvalid(this.blankText);                 return false;             }        }        if(value.length < this.minLength){            this.markInvalid(String.format(this.minLengthText, this.minLength));            return false;        }        if(value.length > this.maxLength){            this.markInvalid(String.format(this.maxLengthText, this.maxLength));            return false;        }        if(this.vtype){            var vt = Ext.form.VTypes;            if(!vt[this.vtype](value, this)){                this.markInvalid(this.vtypeText || vt[this.vtype +'Text']);                return false;            }        }        if(typeof this.validator == "function"){            var msg = this.validator(value);            if(msg !== true){                this.markInvalid(msg);                return false;            }        }        if(this.regex && !this.regex.test(value)){            this.markInvalid(this.regexText);            return false;        }        return true;    },    /**     * Selects text in this field     * @param {Number} start (optional) The index where the selection should start (defaults to 0)     * @param {Number} end (optional) The index where the selection should end (defaults to the text length)     */    selectText : function(start, end){        var v = this.getRawValue();        if(v.length > 0){            start = start === undefined ? 0 : start;            end = end === undefined ? v.length : end;            var d = this.el.dom;            if(d.setSelectionRange){                d.setSelectionRange(start, end);            }else if(d.createTextRange){                var range = d.createTextRange();                range.moveStart("character", start);                range.moveEnd("character", v.length-end);                range.select();            }        }    },    /**     * Automatically grows the field to accomodate the width of the text up to the maximum field width allowed.     * This only takes effect if grow = true, and fires the autosize event.     */    autoSize : function(){        if(!this.grow || !this.rendered){            return;        }        if(!this.metrics){            this.metrics = Ext.util.TextMetrics.createInstance(this.el);        }        var el = this.el;        var v = el.dom.value;        var d = document.createElement('div');        d.appendChild(document.createTextNode(v));        v = d.innerHTML;        d = null;        v += "&#160;";        var w = Math.min(this.growMax, Math.max(this.metrics.getWidth(v) + /* add extra padding */ 10, this.growMin));        this.el.setWidth(w);        this.fireEvent("autosize", this, w);    }});

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
福利电影一区二区| 欧美日韩国产经典色站一区二区三区| 成+人+亚洲+综合天堂| 欧美精选在线播放| 国产精品麻豆网站| 青青草精品视频| 97久久超碰国产精品电影| 日韩美女一区二区三区四区| 亚洲激情图片qvod| 国产精品一区二区在线观看不卡 | 精品婷婷伊人一区三区三| 国产亚洲成av人在线观看导航| 亚洲午夜久久久久久久久电影网 | 青青青伊人色综合久久| 色激情天天射综合网| 国产精品水嫩水嫩| 国产真实乱对白精彩久久| 欧美精品一二三区| 亚洲精品乱码久久久久久久久| 成人性色生活片| 久久夜色精品国产欧美乱极品| 天堂蜜桃91精品| 在线观看日韩国产| 一区二区三区波多野结衣在线观看| 欧美一二三四在线| 亚洲成人动漫精品| 欧美亚洲一区二区三区四区| 亚洲女同女同女同女同女同69| 成人福利电影精品一区二区在线观看| 日韩久久久久久| 激情都市一区二区| 久久只精品国产| 国产麻豆精品在线| 精品国产成人系列| 国产在线精品一区二区三区不卡| 日韩午夜激情av| 蜜桃视频免费观看一区| 日韩视频免费直播| 国产露脸91国语对白| 久久亚洲欧美国产精品乐播| 国产成人自拍网| 亚洲国产高清在线| av电影在线观看一区| 亚洲精品免费在线| 欧美日韩亚洲国产综合| 日韩国产欧美一区二区三区| 日韩女优电影在线观看| 国产高清精品网站| 亚洲色图色小说| 欧美在线观看视频一区二区| 亚洲成在线观看| 日韩欧美国产一区二区在线播放 | 亚洲一级二级三级| 欧美剧情电影在线观看完整版免费励志电影 | 成人激情免费网站| 一区二区不卡在线播放| 欧美伦理电影网| 国产一区二区精品久久91| 日本一区二区动态图| 在线免费观看成人短视频| 婷婷丁香久久五月婷婷| 337p粉嫩大胆噜噜噜噜噜91av| 成人永久免费视频| 一区二区三区精品久久久| 日韩免费一区二区三区在线播放| 国产91丝袜在线18| 午夜视频久久久久久| 久久综合久久99| 91成人在线观看喷潮| 久久成人久久爱| 亚洲欧美日韩小说| 精品国产髙清在线看国产毛片| 99这里只有精品| 久久精品国产**网站演员| 中文字幕av不卡| 日韩欧美中文字幕公布| 91黄色小视频| 国产高清精品网站| 婷婷国产在线综合| 最新国产の精品合集bt伙计| 欧美r级电影在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 激情小说欧美图片| aaa国产一区| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲人xxxx| 国产日产精品一区| 欧美一区二区三区系列电影| 日本精品一级二级| 成人在线视频首页| 国产综合色在线视频区| 日韩高清在线一区| 亚洲精品水蜜桃| 国产精品女上位| 久久综合九色综合97_久久久| 欧美日韩视频在线第一区| 成人午夜视频免费看| 狠狠色丁香久久婷婷综合_中| 亚洲国产成人高清精品| 亚洲欧美日韩人成在线播放| 中文字幕国产一区| www久久久久| 日韩欧美一区二区在线视频| 7878成人国产在线观看| 欧美视频一区二区三区在线观看| 9色porny自拍视频一区二区| 成人黄色综合网站| 大桥未久av一区二区三区中文| 国产一区二区福利| 国产精品一区二区你懂的| 久久黄色级2电影| 日韩av网站免费在线| 日韩在线观看一区二区| 亚洲超碰97人人做人人爱| 亚洲免费观看高清在线观看| 日韩一区在线播放| 亚洲三级在线看| 自拍偷自拍亚洲精品播放| 亚洲欧洲中文日韩久久av乱码| 亚洲视频一二三区| 伊人婷婷欧美激情| 亚洲国产日日夜夜| 亚洲高清久久久| 日韩va亚洲va欧美va久久| 六月婷婷色综合| 国产综合色产在线精品 | 热久久一区二区| 久久99精品国产麻豆婷婷| 激情综合色综合久久综合| 国产一区在线精品| 成人午夜又粗又硬又大| 色综合久久久久综合体桃花网| 日本二三区不卡| 欧美一区永久视频免费观看| 日韩精品在线一区二区| 欧美激情一区二区在线| 亚洲图片激情小说| 午夜精品福利在线| 精品无码三级在线观看视频| 国产91富婆露脸刺激对白 | 国产麻豆视频一区| aaa亚洲精品| 91精品国产综合久久精品图片| 久久先锋资源网| 亚洲欧美视频在线观看| 三级不卡在线观看| 国产精品亚洲专一区二区三区| 99久久婷婷国产综合精品电影 | 欧美精品一区视频| 日韩一区在线免费观看| 日韩国产在线观看一区| 成人性生交大片| 7777精品伊人久久久大香线蕉超级流畅| 日韩一级成人av| 亚洲女人****多毛耸耸8| 强制捆绑调教一区二区| 久久精品欧美日韩| 亚洲成人动漫av| 国产91精品久久久久久久网曝门| 在线观看91视频| 久久精品在线观看| 午夜亚洲国产au精品一区二区| 国产传媒日韩欧美成人| 欧美老人xxxx18| 国产精品第五页| 精品一区二区国语对白| 在线观看国产日韩| 国产片一区二区| 久热成人在线视频| 91国产视频在线观看| 欧美激情中文字幕| 蜜桃91丨九色丨蝌蚪91桃色| 日本丰满少妇一区二区三区| 国产午夜精品久久| 精品中文字幕一区二区| 欧美美女一区二区| 亚洲精品高清在线观看| 成人免费av资源| 精品成人一区二区三区| 日韩精品色哟哟| 欧美亚洲愉拍一区二区| 亚洲区小说区图片区qvod| 国产jizzjizz一区二区| 精品国精品国产尤物美女| 偷拍自拍另类欧美| 欧美日韩国产在线观看| 亚洲精品欧美二区三区中文字幕| 国产成人在线色| 国产性色一区二区| 国产老肥熟一区二区三区| 日韩精品一区二区三区中文不卡 | 亚洲综合清纯丝袜自拍| 91女人视频在线观看| 中文幕一区二区三区久久蜜桃| 国产毛片一区二区| 国产色产综合产在线视频| 国产一区二区三区四| 久久综合给合久久狠狠狠97色69| 久久超碰97人人做人人爱| 久久综合五月天婷婷伊人|