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

📄 action.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
 */

// define the action interfaceExt.form.Action = function(form, options){    this.form = form;    this.options = options || {};};Ext.form.Action.CLIENT_INVALID = 'client';Ext.form.Action.SERVER_INVALID = 'server';Ext.form.Action.CONNECT_FAILURE = 'connect';Ext.form.Action.LOAD_FAILURE = 'load';Ext.form.Action.prototype = {    type : 'default',    failureType : undefined,    response : undefined,    result : undefined,    // interface method    run : function(options){    },    // interface method    success : function(response){    },    // interface method    handleResponse : function(response){    },    // default connection failure    failure : function(response){        this.response = response;        this.failureType = Ext.form.Action.CONNECT_FAILURE;        this.form.afterAction(this, false);    },    processResponse : function(response){        this.response = response;        if(!response.responseText){            return true;        }        this.result = this.handleResponse(response);        return this.result;    },    // utility functions used internally    getUrl : function(appendParams){        var url = this.options.url || this.form.url || this.form.el.dom.action;        if(appendParams){            var p = this.getParams();            if(p){                url += (url.indexOf('?') != -1 ? '&' : '?') + p;            }        }        return url;    },    getMethod : function(){        return (this.options.method || this.form.method || this.form.el.dom.method || 'POST').toUpperCase();    },    getParams : function(){        var bp = this.form.baseParams;        var p = this.options.params;        if(p){            if(typeof p == "object"){                p = Ext.urlEncode(Ext.applyIf(p, bp));            }else if(typeof p == 'string' && bp){                p += '&' + Ext.urlEncode(bp);            }        }else if(bp){            p = Ext.urlEncode(bp);        }        return p;    },    createCallback : function(){        return {            success: this.success,            failure: this.failure,            scope: this,            timeout: (this.form.timeout*1000),            upload: this.form.fileUpload ? this.success : undefined        };    }};Ext.form.Action.Submit = function(form, options){    Ext.form.Action.Submit.superclass.constructor.call(this, form, options);};Ext.extend(Ext.form.Action.Submit, Ext.form.Action, {    type : 'submit',    run : function(){        var o = this.options;        var isPost = this.getMethod() == 'POST';        if(o.clientValidation === false || this.form.isValid()){            Ext.Ajax.request(Ext.apply(this.createCallback(), {                form:this.form.el.dom,                url:this.getUrl(!isPost),                params:isPost ? this.getParams() : null,                isUpload: this.form.fileUpload            }));        }else if (o.clientValidation !== false){ // client validation failed            this.failureType = Ext.form.Action.CLIENT_INVALID;            this.form.afterAction(this, false);        }    },    success : function(response){        var result = this.processResponse(response);        if(result === true || result.success){            this.form.afterAction(this, true);            return;        }        if(result.errors){            this.form.markInvalid(result.errors);            this.failureType = Ext.form.Action.SERVER_INVALID;        }        this.form.afterAction(this, false);    },    handleResponse : function(response){        if(this.form.errorReader){            var rs = this.form.errorReader.read(response);            var errors = [];            if(rs.records){                for(var i = 0, len = rs.records.length; i < len; i++) {                    var r = rs.records[i];                    errors[i] = r.data;                }            }            if(errors.length < 1){                errors = null;            }            return {                success : rs.success,                errors : errors            };        }        return Ext.decode(response.responseText);    }});Ext.form.Action.Load = function(form, options){    Ext.form.Action.Load.superclass.constructor.call(this, form, options);    this.reader = this.form.reader;};Ext.extend(Ext.form.Action.Load, Ext.form.Action, {    type : 'load',    run : function(){        Ext.Ajax.request(Ext.apply(                this.createCallback(), {                    method:this.getMethod(),                    url:this.getUrl(false),                    params:this.getParams()        }));    },    success : function(response){        var result = this.processResponse(response);        if(result === true || !result.success || !result.data){            this.failureType = Ext.form.Action.LOAD_FAILURE;            this.form.afterAction(this, false);            return;        }        this.form.clearInvalid();        this.form.setValues(result.data);        this.form.afterAction(this, true);    },    handleResponse : function(response){        if(this.form.reader){            var rs = this.form.reader.read(response);            var data = rs.records && rs.records[0] ? rs.records[0].data : null;            return {                success : rs.success,                data : data            };        }        return Ext.decode(response.responseText);    }});Ext.form.Action.ACTION_TYPES = {    'load' : Ext.form.Action.Load,    'submit' : Ext.form.Action.Submit};

⌨️ 快捷键说明

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