# Class Ext.form.Action

Package: | Ext.form
Defined In: | Action.js
Class: | Action
Subclasses: | Action.Load, Action.Submit
Extends: | Object

The subclasses of this class provide actions to perform upon Forms.

Instances of this class are only created by a Form when the Form needs to perform an action such as submit or load. The Configuration options listed for this class are set through the Form's action methods: submit, load and doAction

The instance of Action which performed the action is passed to the success and failure callbacks of the Form's action methods (submit, load and doAction), and to the actioncomplete and actionfailed event handlers.

## Config Options

Config Options | Defined By
--- | ---
| failure : Function The function to call when a failure packet was recieved, or when an error ocurred in the Ajax communication. The func... The function to call when a failure packet was recieved, or when an error ocurred in the Ajax communication. The function is passed the following parameters: form : Ext.form.BasicForm The form that requested the action action : Ext.form.Action The Action class. If an Ajax error ocurred, the failure type will be in failureType. The result property of this object may be examined to perform custom postprocessing. | Action
| method : String The HTTP method to use to access the requested URL. Defaults to the Ext.form.BasicForm's method, or if that is not sp... The HTTP method to use to access the requested URL. Defaults to the Ext.form.BasicForm's method, or if that is not specified, the underlying DOM form's method. | Action
| params : Mixed Extra parameter values to pass. These are added to the Form's Ext.form.BasicForm.baseParams and passed to the specifi... Extra parameter values to pass. These are added to the Form's Ext.form.BasicForm.baseParams and passed to the specified URL along with the Form's input fields. Parameters are encoded as standard HTTP parameters using Ext.urlEncode. | Action
| reset : Boolean When set to true, causes the Form to be reset on Action success. If specified, this happens before the success callba... 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. | Action
| scope : Object The scope in which to call the callback functions (The `this` reference for the callback functions). | Action
| success : Function The function to call when a valid success return packet is recieved. The function is passed the following parameters:... The function to call when a valid success return packet is recieved. The function is passed the following parameters: form : Ext.form.BasicForm The form that requested the action action : Ext.form.Action The Action class. The result property of this object may be examined to perform custom postprocessing. | Action
| timeout : Number The number of seconds to wait for a server response before failing with the failureType as Action.CONNECT_FAILURE. If... The number of seconds to wait for a server response before failing with the failureType as Action.CONNECT_FAILURE. If not specified, defaults to the configured `timeout` of the form. | Action
| url : String The URL that the Action is to invoke. | Action
| waitMsg : String The message to be displayed by a call to Ext.MessageBox.wait during the time the action is being processed. | Action
| waitTitle : String The title to be displayed by a call to Ext.MessageBox.wait during the time the action is being processed. | Action

## Public Properties

Property | Defined By
--- | ---
| CLIENT_INVALID : String Failure type returned when client side validation of the Form fails thus aborting a submit action. Client side valida... Failure type returned when client side validation of the Form fails thus aborting a submit action. Client side validation is performed unless clientValidation is explicitly set to `false`. | Action
| CONNECT_FAILURE : String Failure type returned when a communication error happens when attempting to send a request to the remote server. The ... Failure type returned when a communication error happens when attempting to send a request to the remote server. The response may be examined to provide further information. | Action
| LOAD_FAILURE : String Failure type returned when the response's <tt style="font-weight:bold">success property is set to false, or no field ... Failure type returned when the response's `success` property is set to `false`, or no field values are returned in the response's `data` property. | Action
| SERVER_INVALID : String Failure type returned when server side processing fails and the result's <tt style="font-weight:bold">success propert... Failure type returned when server side processing fails and the result's `success` property is set to `false`. In the case of a form submission, field-specific error messages may be returned in the result's `errors` property. | Action
| failureType : String 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.FormPanel({
    ...
    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.CONNECT_FAILURE) {
                            Ext.Msg.alert('Error',
                                'Status:'+action.response.status+': '+
                                action.response.statusText);
                        }
                        if (action.failureType === Ext.form.Action.SERVER_INVALID){
                            // server responded with success = false
                            Ext.Msg.alert('Invalid', action.result.errormsg);
                        }
                    }
                });
            }
        }
    },{
        text: 'Reset',
        handler: function(){
            fp.getForm().reset();
        }
    }]
| Action
| response : Object The XMLHttpRequest object used to perform the action. | Action
| result : Object The decoded response object containing a boolean <tt style="font-weight:bold">success property and other, action-spec... The decoded response object containing a boolean `success` property and other, action-specific properties. | Action
| type : String The type of action this Action instance performs. Currently only "submit" and "load" are supported. | Action

## Public Methods

This class has no public methods.

## Public Events

This class has no public events.