⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form-debug.js

📁 ext-2.3.0
💻 JS
📖 第 1 页 / 共 5 页
字号:
        Ext.form.TriggerField.superclass.onBlur.call(this);        if(this.wrap){            this.wrap.removeClass('x-trigger-wrap-focus');        }    },    beforeBlur : Ext.emptyFn,     // private    // This should be overriden by any subclass that needs to check whether or not the field can be blurred.    validateBlur : function(e){        return true;    },        onTriggerClick : Ext.emptyFn            });// TwinTriggerField is not a public class to be used directly.  It is meant as an abstract base class// to be extended by an implementing class.  For an example of implementing this class, see the custom// SearchField implementation here: http://extjs.com/deploy/ext/examples/form/custom.htmlExt.form.TwinTriggerField = Ext.extend(Ext.form.TriggerField, {        initComponent : function(){        Ext.form.TwinTriggerField.superclass.initComponent.call(this);        this.triggerConfig = {            tag:'span', cls:'x-form-twin-triggers', cn:[            {tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger1Class},            {tag: "img", src: Ext.BLANK_IMAGE_URL, cls: "x-form-trigger " + this.trigger2Class}        ]};    },    getTrigger : function(index){        return this.triggers[index];    },    initTrigger : function(){        var ts = this.trigger.select('.x-form-trigger', true);        this.wrap.setStyle('overflow', 'hidden');        var triggerField = this;        ts.each(function(t, all, index){            t.hide = function(){                var w = triggerField.wrap.getWidth();                this.dom.style.display = 'none';                triggerField.el.setWidth(w-triggerField.trigger.getWidth());            };            t.show = function(){                var w = triggerField.wrap.getWidth();                this.dom.style.display = '';                triggerField.el.setWidth(w-triggerField.trigger.getWidth());            };            var triggerIndex = 'Trigger'+(index+1);            if(this['hide'+triggerIndex]){                t.dom.style.display = 'none';            }            t.on("click", this['on'+triggerIndex+'Click'], this, {preventDefault:true});            t.addClassOnOver('x-form-trigger-over');            t.addClassOnClick('x-form-trigger-click');        }, this);        this.triggers = ts.elements;    },        // private    onDestroy : function() {        Ext.destroy.apply(this, this.triggers);        Ext.form.TwinTriggerField.superclass.onDestroy.call(this);    },    onTrigger1Click : Ext.emptyFn,    onTrigger2Click : Ext.emptyFn});Ext.reg('trigger', Ext.form.TriggerField);Ext.form.TextArea = Ext.extend(Ext.form.TextField,  {        growMin : 60,        growMax: 1000,    growAppend : '&#160;\n&#160;',    growPad : Ext.isWebKit ? -6 : 0,    enterIsSpecial : false,        preventScrollbars: false,        // private    onRender : function(ct, position){        if(!this.el){            this.defaultAutoCreate = {                tag: "textarea",                style:"width:100px;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);        }    },    onDestroy : function(){        if(this.textSizeEl){            Ext.removeNode(this.textSizeEl);        }        Ext.form.TextArea.superclass.onDestroy.call(this);    },    fireKey : function(e){        if(e.isSpecialKey() && (this.enterIsSpecial || (e.getKey() != e.ENTER || e.hasModifier()))){            this.fireEvent("specialkey", this, e);        }    },    // private    onKeyUp : function(e){        if(!e.isNavKeyPress() || e.getKey() == e.ENTER){            this.autoSize();        }        Ext.form.TextArea.superclass.onKeyUp.call(this, e);    },        autoSize: function(){        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;        Ext.fly(ts).setWidth(this.el.getWidth());        if(v.length < 1){            v = "&#160;&#160;";        }else{            v += this.growAppend;            if(Ext.isIE){                v = v.replace(/\n/g, '<br />');            }        }        ts.innerHTML = v;        var h = Math.min(this.growMax, Math.max(ts.offsetHeight, this.growMin) + this.growPad);        if(h != this.lastHeight){            this.lastHeight = h;            this.el.setHeight(h);            this.fireEvent("autosize", this, h);        }    }});Ext.reg('textarea', Ext.form.TextArea);Ext.form.NumberField = Ext.extend(Ext.form.TextField,  {                fieldClass: "x-form-field x-form-num-field",        allowDecimals : true,        decimalSeparator : ".",        decimalPrecision : 2,        allowNegative : true,        minValue : Number.NEGATIVE_INFINITY,        maxValue : Number.MAX_VALUE,        minText : "The minimum value for this field is {0}",        maxText : "The maximum value for this field is {0}",        nanText : "{0} is not a valid number",        baseChars : "0123456789",    // private    initEvents : function(){        var allowed = this.baseChars + '';        if (this.allowDecimals) {            allowed += this.decimalSeparator;        }        if (this.allowNegative) {            allowed += '-';        }        this.maskRe = new RegExp('[' + Ext.escapeRe(allowed) + ']');        Ext.form.NumberField.superclass.initEvents.call(this);    },    // private    validateValue : function(value){        if(!Ext.form.NumberField.superclass.validateValue.call(this, value)){            return false;        }        if(value.length < 1){ // if it's blank and textfield didn't flag it then it's valid             return true;        }        value = String(value).replace(this.decimalSeparator, ".");        if(isNaN(value)){            this.markInvalid(String.format(this.nanText, value));            return false;        }        var num = this.parseValue(value);        if(num < this.minValue){            this.markInvalid(String.format(this.minText, this.minValue));            return false;        }        if(num > this.maxValue){            this.markInvalid(String.format(this.maxText, this.maxValue));            return false;        }        return true;    },    getValue : function(){        return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)));    },    setValue : function(v){    	v = typeof v == 'number' ? v : parseFloat(String(v).replace(this.decimalSeparator, "."));        v = isNaN(v) ? '' : String(v).replace(".", this.decimalSeparator);        Ext.form.NumberField.superclass.setValue.call(this, v);    },    // private    parseValue : function(value){        value = parseFloat(String(value).replace(this.decimalSeparator, "."));        return isNaN(value) ? '' : value;    },    // private    fixPrecision : function(value){        var nan = isNaN(value);        if(!this.allowDecimals || this.decimalPrecision == -1 || nan || !value){           return nan ? '' : value;        }        return parseFloat(parseFloat(value).toFixed(this.decimalPrecision));    },    beforeBlur : function(){        var v = this.parseValue(this.getRawValue());        if(!Ext.isEmpty(v)){            this.setValue(this.fixPrecision(v));        }    }});Ext.reg('numberfield', Ext.form.NumberField);Ext.form.Label = Ext.extend(Ext.BoxComponent, {                // private    onRender : function(ct, position){        if(!this.el){            this.el = document.createElement('label');            this.el.id = this.getId();            this.el.innerHTML = this.text ? Ext.util.Format.htmlEncode(this.text) : (this.html || '');            if(this.forId){                this.el.setAttribute('for', this.forId);            }        }        Ext.form.Label.superclass.onRender.call(this, ct, position);    },            setText: function(t, encode){        var e = encode === false;        this[!e ? 'text' : 'html'] = t;        delete this[e ? 'text' : 'html'];        if(this.rendered){            this.el.dom.innerHTML = encode !== false ? Ext.util.Format.htmlEncode(t) : t;        }        return this;    }});Ext.reg('label', Ext.form.Label);Ext.form.DateField = Ext.extend(Ext.form.TriggerField,  {        format : "m/d/Y",        altFormats : "m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",        disabledDaysText : "Disabled",        disabledDatesText : "Disabled",        minText : "The date in this field must be equal to or after {0}",        maxText : "The date in this field must be equal to or before {0}",        invalidText : "{0} is not a valid date - it must be in the format {1}",        triggerClass : 'x-form-date-trigger',        showToday : true,                        // private    defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"},    initComponent : function(){        Ext.form.DateField.superclass.initComponent.call(this);        this.addEvents(                        'select'        );        if(typeof this.minValue == "string"){            this.minValue = this.parseDate(this.minValue);        }        if(typeof this.maxValue == "string"){            this.maxValue = this.parseDate(this.maxValue);        }        this.disabledDatesRE = null;        this.initDisabledDays();    },    // private    initDisabledDays : function(){        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 += "|";            }            this.disabledDatesRE = new RegExp(re + ")");        }    },        setDisabledDates : function(dd){        this.disabledDates = dd;        this.initDisabledDays();        if(this.menu){            this.menu.picker.setDisabledDates(this.disabledDatesRE);        }    },        setDisabledDays : function(dd){        this.disabledDays = dd;        if(this.menu){            this.menu.picker.setDisabledDays(dd);        }    },        setMinValue : function(dt){        this.minValue = (typeof dt == "string" ? this.parseDate(dt) : dt);        if(this.menu){            this.menu.picker.setMinDate(this.minValue);        }    },        setMaxValue : function(dt){        this.maxValue = (typeof dt == "string" ? this.parseDate(dt) : dt);        if(this.menu){            this.menu.picker.setMaxDate(this.maxValue);        }    },    // private    validateValue : function(value){        value = this.formatDate(value);        if(!Ext.form.DateField.superclass.validateValue.call(this, value)){            return false;        }        if(value.length < 1){ // if it's blank and textfield didn't flag it then it's valid             return true;        }        var svalue = value;        value = this.parseDate(value);        if(!value){            this.markInvalid(String.format(this.invalidText, svalue, this.format));            return false;        }        var time = value.getTime();        if(this.minValue && time < this.minValue.getTime()){            this.markInvalid(String.format(this.minText, this.formatDate(this.minValue)));            return false;        }        if(this.maxValue && time > this.maxValue.getTime()){            this.markInvalid(String.format(this.maxText, this.formatDate(this.maxValue)));            return false;        }        if(this.disabledDays){            var day = value.getDay();            for(var i = 0; i < this.disabledDays.length; i++) {            	if(day === this.disabledDays[i]){            	    this.markInvalid(this.disabledDaysText);                    return false;            	}            }        }        var fvalue = this.formatDate(value);        if(this.disabledDatesRE && this.disabledDatesRE.test(fvalue)){            this.markInvalid(String.format(this.disabledDatesText, fvalue));            return false;        }        return true;    },    // private    // Provides logic to override the default TriggerField.validateBlur which just returns true    validateBlur : function(){        return !this.menu || !this.menu.isVisible();    },        getValue : function(){        return this.parseDate(Ext.form.DateField.superclass.getValue.call(this)) || "";    },        setValue : function(date){        Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date)));    },    // private    parseDate : function(value){        if(!value || Ext.isDate(value)){            return value;        }        var v = Date.parseDate(value, this.format);        if(!v && this.altFormats){            if(!this.altFormatsArray){                this.altFormatsArray = this.altFormats.split("|");            }            for(var i = 0, len = this.altFormatsArray.length; i < len && !v; i++){                v = Date.parseDate(value, this.altFormatsArray[i]);            }        }        return v;    },    // private    onDestroy : function(){        if(this.menu) {            this.menu.destroy();        }        Ext.form.DateField.superclass.onDestroy.call(this);    },

⌨️ 快捷键说明

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