Ext JS 4.1.3 Sencha Docs

Ext.form.action.Submit

Alternate names

Ext.form.Action.Submit

Hierarchy

Ext.Base
Ext.form.action.Action
Ext.form.action.Submit

Subclasses

Files

A class which handles submission of data from Forms and processes the returned response.

Instances of this class are only created by a Form when submitting.

Response Packet Criteria

A response packet may contain:

  • success property : Boolean - required.

  • errors property : Object - optional, contains error messages for invalid fields.

JSON Packets

By default, response packets are assumed to be JSON, so a typical response packet may look like this:

{
    success: false,
    errors: {
        clientCode: "Client not found",
        portOfLoading: "This field must not be null"
    }
}

Other data may be placed into the response for processing by the Ext.form.Basic's callback or event handler methods. The object decoded from this JSON is available in the result property.

Alternatively, if an errorReader is specified as an XmlReader:

errorReader: new Ext.data.reader.Xml({
        record : 'field',
        success: '@success'
    }, [
        'id', 'msg'
    ]
)

then the results may be sent back in XML format:

<?xml version="1.0" encoding="UTF-8"?>
<message success="false">
<errors>
    <field>
        <id>clientCode</id>
        <msg><![CDATA[Code not found. <br /><i>This is a test validation message from the server </i>]]></msg>
    </field>
    <field>
        <id>portOfLoading</id>
        <msg><![CDATA[Port not found. <br /><i>This is a test validation message from the server </i>]]></msg>
    </field>
</errors>
</message>

Other elements may be placed into the response XML for processing by the Ext.form.Basic's callback or event handler methods. The XML document is available in the errorReader's xmlData property.

Available since: 1.1.0

Defined By

Config options

Ext.form.action.Submit
view source
: Boolean
Determines whether a Form's fields are validated in a final call to isValid prior to submission. ...

Determines whether a Form's fields are validated in a final call to isValid prior to submission. Pass false in the Form's submit options to prevent this.

Defaults to: true

Available since: 1.1.0

The function to call when a failure packet was received, or when an error ocurred in the Ajax communication. ...

The function to call when a failure packet was received, or when an error ocurred in the Ajax communication.

Available since: 1.1.0

Parameters

The BasicForm instance that is invoking this Action. ...

The BasicForm instance that is invoking this Action. Required.

Available since: 4.0.0

Extra headers to be sent in the AJAX request for submit and load actions. ...

Extra headers to be sent in the AJAX request for submit and load actions. See Ext.data.proxy.Ajax.headers.

Available since: 4.0.0

The HTTP method to use to access the requested URL. ...

The HTTP method to use to access the requested URL. Defaults to the BasicForm's method, or 'POST' if not specified.

Available since: 1.1.0

Extra parameter values to pass. ...

Extra parameter values to pass. These are added to the Form's Ext.form.Basic.baseParams and passed to the specified URL along with the Form's input fields.

Parameters are encoded as standard HTTP parameters using Ext.Object.toQueryString.

Available since: 1.1.0

When set to true, causes the Form to be reset on Action success. ...

When set to true, causes the Form to be reset on Action success. If specified, this happens before the success callback is called and before the Form's actioncomplete event fires.

Available since: 2.3.0

The scope in which to call the configured success and failure callback functions (the this reference for the callback...

The scope in which to call the configured success and failure callback functions (the this reference for the callback functions).

Available since: 2.3.0

If set to true, the emptyText value will be sent with the form when it is submitted. ...

If set to true, the emptyText value will be sent with the form when it is submitted.

Defaults to: true

Available since: 3.4.0

The function to call when a valid success return packet is received. ...

The function to call when a valid success return packet is received.

Available since: 1.1.0

Parameters

The number of seconds to wait for a server response before failing with the failureType as CONNECT_FAILURE. ...

The number of seconds to wait for a server response before failing with the failureType as CONNECT_FAILURE. If not specified, defaults to the configured timeout of the form.

Available since: 2.3.0

The URL that the Action is to invoke. ...

The URL that the Action is to invoke. Will default to the url configured on the form.

Available since: 1.1.0

The message to be displayed by a call to Ext.window.MessageBox.wait during the time the action is being processed.

The message to be displayed by a call to Ext.window.MessageBox.wait during the time the action is being processed.

Available since: 1.1.0

The title to be displayed by a call to Ext.window.MessageBox.wait during the time the action is being processed.

The title to be displayed by a call to Ext.window.MessageBox.wait during the time the action is being processed.

Available since: 1.1.0

Properties

Defined By

Instance Properties

...

Defaults to: 'Ext.Base'

Available since: 4.1.1

...

Defaults to: {}

Available since: 4.1.1

The type of failure detected will be one of these: CLIENT_INVALID, SERVER_INVALID, CONNECT_FAILURE, or LOAD_FAILURE. ...

The type of failure detected will be one of these: CLIENT_INVALID, SERVER_INVALID, CONNECT_FAILURE, or LOAD_FAILURE.

Usage:

var fp = new Ext.form.Panel({
...
buttons: [{
    text: 'Save',
    formBind: true,
    handler: function(){
        if(fp.getForm().isValid()){
            fp.getForm().submit({
                url: 'form-submit.php',
                waitMsg: 'Submitting your data...',
                success: function(form, action){
                    // server responded with success = true
                    var result = action.result;
                },
                failure: function(form, action){
                    if (action.failureType === Ext.form.action.Action.CONNECT_FAILURE) {
                        Ext.Msg.alert('Error',
                            'Status:'+action.response.status+': '+
                            action.response.statusText);
                    }
                    if (action.failureType === Ext.form.action.Action.SERVER_INVALID){
                        // server responded with success = false
                        Ext.Msg.alert('Invalid', action.result.errormsg);
                    }
                }
            });
        }
    }
},{
    text: 'Reset',
    handler: function(){
        fp.getForm().reset();
    }
}]

Available since: 1.1.0

...

Defaults to: []

Available since: 4.1.1

...

Defaults to: {}

Available since: 4.1.1

...

Defaults to: true

Available since: 4.1.1

The raw XMLHttpRequest object used to perform the action.

The raw XMLHttpRequest object used to perform the action.

Available since: 1.1.0

The decoded response object containing a boolean success property and other, action-specific properties.

The decoded response object containing a boolean success property and other, action-specific properties.

Available since: 1.1.0

Get the reference to the current class from which this object was instantiated. ...

Get the reference to the current class from which this object was instantiated. Unlike statics, this.self is scope-dependent and it's meant to be used for dynamic inheritance. See statics for a detailed comparison

Ext.define('My.Cat', {
    statics: {
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        alert(this.self.speciesName); // dependent on 'this'
    },

    clone: function() {
        return new this.self();
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',
    statics: {
        speciesName: 'Snow Leopard'         // My.SnowLeopard.speciesName = 'Snow Leopard'
    }
});

var cat = new My.Cat();                     // alerts 'Cat'
var snowLeopard = new My.SnowLeopard();     // alerts 'Snow Leopard'

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));             // alerts 'My.SnowLeopard'

Available since: 4.0.0

Ext.form.action.Submit
view source
: String
The type of action this Action instance performs. ...

The type of action this Action instance performs. Currently only "submit" and "load" are supported.

Defaults to: 'submit'

Available since: 1.1.0

Overrides: Ext.form.action.Action.type

Defined By

Static Properties

...

Defaults to: []

Available since: 4.1.1

Methods

Defined By

Instance Methods

Creates new Action. ...

Creates new Action.

Available since: 4.0.0

Parameters

  • config : Object (optional)

    Config object.

Returns

Ext.form.action.Submit
view source
( ) : HTMLElementprivate
Builds a form element containing fields corresponding to all the parameters to be submitted (everything returned by g...

Builds a form element containing fields corresponding to all the parameters to be submitted (everything returned by getParams.

NOTE: the form element is automatically added to the DOM, so any code that uses it must remove it from the DOM after finishing with it.

Available since: 4.0.0

Returns

  • HTMLElement
( args ) : Objectdeprecatedprotected
Call the original method that was previously overridden with override Ext.define('My.Cat', { constructor: functi...

Call the original method that was previously overridden with override

Ext.define('My.Cat', {
    constructor: function() {
        alert("I'm a cat!");
    }
});

My.Cat.override({
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callOverridden();

        alert("Meeeeoooowwww");
    }
});

var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                          // alerts "I'm a cat!"
                          // alerts "Meeeeoooowwww"

This method has been deprecated

as of 4.1. Use callParent instead.

Available since: 4.0.0

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callOverridden(arguments)

Returns

  • Object

    Returns the result of calling the overridden method

Call the "parent" method of the current method. ...

Call the "parent" method of the current method. That is the method previously overridden by derivation or by an override (see Ext.define).

 Ext.define('My.Base', {
     constructor: function (x) {
         this.x = x;
     },

     statics: {
         method: function (x) {
             return x;
         }
     }
 });

 Ext.define('My.Derived', {
     extend: 'My.Base',

     constructor: function () {
         this.callParent([21]);
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // alerts 21

This can be used with an override as follows:

 Ext.define('My.DerivedOverride', {
     override: 'My.Derived',

     constructor: function (x) {
         this.callParent([x*2]); // calls original My.Derived constructor
     }
 });

 var obj = new My.Derived();

 alert(obj.x);  // now alerts 42

This also works with static methods.

 Ext.define('My.Derived2', {
     extend: 'My.Base',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // calls My.Base.method
         }
     }
 });

 alert(My.Base.method(10);     // alerts 10
 alert(My.Derived2.method(10); // alerts 20

Lastly, it also works with overridden static methods.

 Ext.define('My.Derived2Override', {
     override: 'My.Derived2',

     statics: {
         method: function (x) {
             return this.callParent([x*2]); // calls My.Derived2.method
         }
     }
 });

 alert(My.Derived2.method(10); // now alerts 40

To override a method and replace it and also call the superclass method, use callSuper. This is often done to patch a method to fix a bug.

Available since: 4.0.0

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callParent(arguments)

Returns

  • Object

    Returns the result of calling the parent method

( args ) : Objectprotected
This method is used by an override to call the superclass method but bypass any overridden method. ...

This method is used by an override to call the superclass method but bypass any overridden method. This is often done to "patch" a method that contains a bug but for whatever reason cannot be fixed directly.

Consider:

 Ext.define('Ext.some.Class', {
     method: function () {
         console.log('Good');
     }
 });

 Ext.define('Ext.some.DerivedClass', {
     method: function () {
         console.log('Bad');

         // ... logic but with a bug ...

         this.callParent();
     }
 });

To patch the bug in DerivedClass.method, the typical solution is to create an override:

 Ext.define('App.paches.DerivedClass', {
     override: 'Ext.some.DerivedClass',

     method: function () {
         console.log('Fixed');

         // ... logic but with bug fixed ...

         this.callSuper();
     }
 });

The patch method cannot use callParent to call the superclass method since that would call the overridden method containing the bug. In other words, the above patch would only produce "Fixed" then "Good" in the console log, whereas, using callParent would produce "Fixed" then "Bad" then "Good".

Available since: Ext JS 4.1.3

Parameters

  • args : Array/Arguments

    The arguments, either an array or the arguments object from the current method, for example: this.callSuper(arguments)

Returns

  • Object

    Returns the result of calling the superclass method

...

Available since: 4.1.1

Creates a callback object. ...

Creates a callback object.

Available since: 4.0.0

Ext.form.action.Submit
view source
( )private
Performs the submit of the form data. ...

Performs the submit of the form data.

Available since: 4.0.0

...

Available since: 4.1.0

Parameters

Returns the initial configuration passed to constructor when instantiating this class. ...

Returns the initial configuration passed to constructor when instantiating this class.

Available since: 4.1.0

Parameters

  • name : String (optional)

    Name of the config option to return.

Returns

  • Object/Mixed

    The full config object or a single config value when name parameter specified.

Determine the HTTP method to be used for the request. ...

Determine the HTTP method to be used for the request.

Available since: 4.0.0

Returns

Ext.form.action.Submit
view source
( )private
Builds the full set of parameters from the field values plus any additional configured params. ...

Builds the full set of parameters from the field values plus any additional configured params.

Available since: 4.0.0

Overrides: Ext.form.action.Action.getParams

Build the URL for the AJAX request. ...

Build the URL for the AJAX request. Used by the standard AJAX submit and load actions.

Available since: 4.0.0

Returns

Ext.form.action.Submit
view source
( response )private
...

Available since: 4.0.0

Parameters

Overrides: Ext.form.action.Action.handleResponse

...

Available since: 4.1.0

Parameters

( config ) : Ext.Basechainableprotected
Initialize configuration for this class. ...

Initialize configuration for this class. a typical example:

Ext.define('My.awesome.Class', {
    // The default config
    config: {
        name: 'Awesome',
        isAwesome: true
    },

    constructor: function(config) {
        this.initConfig(config);
    }
});

var awesome = new My.awesome.Class({
    name: 'Super Awesome'
});

alert(awesome.getName()); // 'Super Awesome'

Available since: 4.0.0

Parameters

Returns

( names, callback, scope )private
...

Available since: 4.1.0

Parameters

Handles a failure response. ...

Handles a failure response.

Available since: 4.0.0

Parameters

Ext.form.action.Submit
view source
( response )private
...

Available since: 4.0.0

Parameters

Overrides: Ext.form.action.Action.onSuccess

Validates that a response contains either responseText or responseXML and invokes handleResponse to build the result ...

Validates that a response contains either responseText or responseXML and invokes handleResponse to build the result object.

Available since: 4.0.0

Parameters

  • response : Object

    The raw response object.

Returns

  • Object/Boolean

    The result object as built by handleResponse, or true if the response had empty responseText and responseXML.

Ext.form.action.Submit
view source
( )
inherit docs Invokes this action using the current configuration. ...

inherit docs

Invokes this action using the current configuration.

Available since: 4.0.0

Overrides: Ext.form.action.Action.run

( config, applyIfNotSet ) : Ext.Basechainableprivate
...

Available since: 4.0.0

Parameters

Returns

Get the reference to the class from which this object was instantiated. ...

Get the reference to the class from which this object was instantiated. Note that unlike self, this.statics() is scope-independent and it always returns the class from which it was called, regardless of what this points to during run-time

Ext.define('My.Cat', {
    statics: {
        totalCreated: 0,
        speciesName: 'Cat' // My.Cat.speciesName = 'Cat'
    },

    constructor: function() {
        var statics = this.statics();

        alert(statics.speciesName);     // always equals to 'Cat' no matter what 'this' refers to
                                        // equivalent to: My.Cat.speciesName

        alert(this.self.speciesName);   // dependent on 'this'

        statics.totalCreated++;
    },

    clone: function() {
        var cloned = new this.self;                      // dependent on 'this'

        cloned.groupName = this.statics().speciesName;   // equivalent to: My.Cat.speciesName

        return cloned;
    }
});


Ext.define('My.SnowLeopard', {
    extend: 'My.Cat',

    statics: {
        speciesName: 'Snow Leopard'     // My.SnowLeopard.speciesName = 'Snow Leopard'
    },

    constructor: function() {
        this.callParent();
    }
});

var cat = new My.Cat();                 // alerts 'Cat', then alerts 'Cat'

var snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'

var clone = snowLeopard.clone();
alert(Ext.getClassName(clone));         // alerts 'My.SnowLeopard'
alert(clone.groupName);                 // alerts 'Cat'

alert(My.Cat.totalCreated);             // alerts 3

Available since: 4.0.0

Returns

Defined By

Static Methods

( config )privatestatic
...

Available since: 4.1.1

Parameters

( members )chainableprivatestatic
...

Available since: 4.1.1

Parameters

( name, member )chainableprivatestatic
...

Available since: 4.1.1

Parameters

( members )chainablestatic
Add methods / properties to the prototype of this class. ...

Add methods / properties to the prototype of this class.

Ext.define('My.awesome.Cat', {
    constructor: function() {
        ...
    }
});

 My.awesome.Cat.addMembers({
     meow: function() {
        alert('Meowww...');
     }
 });

 var kitty = new My.awesome.Cat;
 kitty.meow();

Available since: 4.1.0

Parameters

( members ) : Ext.Basechainablestatic
Add / override static properties of this class. ...

Add / override static properties of this class.

Ext.define('My.cool.Class', {
    ...
});

My.cool.Class.addStatics({
    someProperty: 'someValue',      // My.cool.Class.someProperty = 'someValue'
    method1: function() { ... },    // My.cool.Class.method1 = function() { ... };
    method2: function() { ... }     // My.cool.Class.method2 = function() { ... };
});

Available since: 4.0.2

Parameters

Returns

( xtype )chainableprivatestatic
...

Available since: 4.1.1

Parameters

( fromClass, members ) : Ext.Basechainableprivatestatic
Borrow another class' members to the prototype of this class. ...

Borrow another class' members to the prototype of this class.

Ext.define('Bank', {
    money: '$$$',
    printMoney: function() {
        alert('$$$$$$$');
    }
});

Ext.define('Thief', {
    ...
});

Thief.borrow(Bank, ['money', 'printMoney']);

var steve = new Thief();

alert(steve.money); // alerts '$$$'
steve.printMoney(); // alerts '$$$$$$$'

Available since: 4.0.2

Parameters

  • fromClass : Ext.Base

    The class to borrow members from

  • members : Array/String

    The names of the members to borrow

Returns

Create a new instance of this Class. ...

Create a new instance of this Class.

Ext.define('My.cool.Class', {
    ...
});

My.cool.Class.create({
    someConfig: true
});

All parameters are passed to the constructor of the class.

Available since: 4.0.2

Returns

( alias, origin )static
Create aliases for existing prototype methods. ...

Create aliases for existing prototype methods. Example:

Ext.define('My.cool.Class', {
    method1: function() { ... },
    method2: function() { ... }
});

var test = new My.cool.Class();

My.cool.Class.createAlias({
    method3: 'method1',
    method4: 'method2'
});

test.method3(); // test.method1()

My.cool.Class.createAlias('method5', 'method3');

test.method5(); // test.method3() -> test.method1()

Available since: 4.0.2

Parameters

( config )privatestatic
...

Available since: 4.1.1

Parameters

Get the current class' name in string format. ...

Get the current class' name in string format.

Ext.define('My.cool.Class', {
    constructor: function() {
        alert(this.self.getName()); // alerts 'My.cool.Class'
    }
});

My.cool.Class.getName(); // 'My.cool.Class'

Available since: 4.0.4

Returns

( )deprecatedstatic
Adds members to class. ...

Adds members to class.

This method has been deprecated since 4.1

Use addMembers instead.

Available since: 4.0.2

( name, mixinClass )chainableprivatestatic
Used internally by the mixins pre-processor ...

Used internally by the mixins pre-processor

Available since: 4.1.1

Parameters

( fn, scope )chainableprivatestatic
...

Available since: 4.1.1

Parameters

( members ) : Ext.Basechainabledeprecatedstatic
Override members of this class. ...

Override members of this class. Overridden methods can be invoked via callParent.

Ext.define('My.Cat', {
    constructor: function() {
        alert("I'm a cat!");
    }
});

My.Cat.override({
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callParent(arguments);

        alert("Meeeeoooowwww");
    }
});

var kitty = new My.Cat(); // alerts "I'm going to be a cat!"
                          // alerts "I'm a cat!"
                          // alerts "Meeeeoooowwww"

As of 4.1, direct use of this method is deprecated. Use Ext.define instead:

Ext.define('My.CatOverride', {
    override: 'My.Cat',
    constructor: function() {
        alert("I'm going to be a cat!");

        this.callParent(arguments);

        alert("Meeeeoooowwww");
    }
});

The above accomplishes the same result but can be managed by the Ext.Loader which can properly order the override and its target class and the build process can determine whether the override is needed based on the required state of the target class (My.Cat).

This method has been deprecated since 4.1.0

Use Ext.define instead

Available since: 4.0.2

Parameters

  • members : Object

    The properties to add to this class. This should be specified as an object literal containing one or more properties.

Returns

...

Available since: 4.1.1