Upgrade to ExtJS 4.0.7 - Released 10/19/2011
[extjs.git] / docs / source / Field.html
index 1198ebb..b3f56d6 100644 (file)
@@ -3,8 +3,8 @@
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>The source code</title>
-  <link href="../prettify/prettify.css" type="text/css" rel="stylesheet" />
-  <script type="text/javascript" src="../prettify/prettify.js"></script>
+  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
+  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
   <style type="text/css">
     .highlight { display: block; background-color: #ddd; }
   </style>
 </head>
 <body onload="prettyPrint(); highlight();">
   <pre class="prettyprint lang-js"><span id='Ext-form-field-Field'>/**
-</span> * @class Ext.form.field.Field
-
-This mixin provides a common interface for the logical behavior and state of form fields, including:
-
-- Getter and setter methods for field values
-- Events and methods for tracking value and validity changes
-- Methods for triggering validation
-
-**NOTE**: When implementing custom fields, it is most likely that you will want to extend the {@link Ext.form.field.Base}
-component class rather than using this mixin directly, as BaseField contains additional logic for generating an
-actual DOM complete with {@link Ext.form.Labelable label and error message} display and a form input field,
-plus methods that bind the Field value getters and setters to the input field's value.
-
-If you do want to implement this mixin directly and don't want to extend {@link Ext.form.field.Base}, then
-you will most likely want to override the following methods with custom implementations: {@link #getValue},
-{@link #setValue}, and {@link #getErrors}. Other methods may be overridden as needed but their base
-implementations should be sufficient for common cases. You will also need to make sure that {@link #initField}
-is called during the component's initialization.
-
- * @markdown
- * @docauthor Jason Johnston &lt;jason@sencha.com&gt;
+</span> * @docauthor Jason Johnston &lt;jason@sencha.com&gt;
+ *
+ * This mixin provides a common interface for the logical behavior and state of form fields, including:
+ *
+ * - Getter and setter methods for field values
+ * - Events and methods for tracking value and validity changes
+ * - Methods for triggering validation
+ *
+ * **NOTE**: When implementing custom fields, it is most likely that you will want to extend the {@link Ext.form.field.Base}
+ * component class rather than using this mixin directly, as BaseField contains additional logic for generating an
+ * actual DOM complete with {@link Ext.form.Labelable label and error message} display and a form input field,
+ * plus methods that bind the Field value getters and setters to the input field's value.
+ *
+ * If you do want to implement this mixin directly and don't want to extend {@link Ext.form.field.Base}, then
+ * you will most likely want to override the following methods with custom implementations: {@link #getValue},
+ * {@link #setValue}, and {@link #getErrors}. Other methods may be overridden as needed but their base
+ * implementations should be sufficient for common cases. You will also need to make sure that {@link #initField}
+ * is called during the component's initialization.
  */
 Ext.define('Ext.form.field.Field', {
-
 <span id='Ext-form-field-Field-property-isFormField'>    /**
-</span>     * @property isFormField
-     * @type {Boolean}
+</span>     * @property {Boolean} isFormField
      * Flag denoting that this component is a Field. Always true.
      */
     isFormField : true,
 
 <span id='Ext-form-field-Field-cfg-value'>    /**
-</span>     * @cfg {Mixed} value A value to initialize this field with (defaults to undefined).
+</span>     * @cfg {Object} value
+     * A value to initialize this field with.
      */
-    
+
 <span id='Ext-form-field-Field-cfg-name'>    /**
-</span>     * @cfg {String} name The name of the field (defaults to undefined). By default this is used as the parameter
-     * name when including the {@link #getSubmitData field value} in a {@link Ext.form.Basic#submit form submit()}.
-     * To prevent the field from being included in the form submit, set {@link #submitValue} to &lt;tt&gt;false&lt;/tt&gt;.
+</span>     * @cfg {String} name
+     * The name of the field. By default this is used as the parameter name when including the
+     * {@link #getSubmitData field value} in a {@link Ext.form.Basic#submit form submit()}. To prevent the field from
+     * being included in the form submit, set {@link #submitValue} to false.
      */
 
 <span id='Ext-form-field-Field-cfg-disabled'>    /**
-</span>     * @cfg {Boolean} disabled True to disable the field (defaults to false). Disabled Fields will not be
-     * {@link Ext.form.Basic#submit submitted}.&lt;/p&gt;
+</span>     * @cfg {Boolean} disabled
+     * True to disable the field. Disabled Fields will not be {@link Ext.form.Basic#submit submitted}.
      */
     disabled : false,
 
 <span id='Ext-form-field-Field-cfg-submitValue'>    /**
-</span>     * @cfg {Boolean} submitValue Setting this to &lt;tt&gt;false&lt;/tt&gt; will prevent the field from being
-     * {@link Ext.form.Basic#submit submitted} even when it is not disabled. Defaults to &lt;tt&gt;true&lt;/tt&gt;.
+</span>     * @cfg {Boolean} submitValue
+     * Setting this to false will prevent the field from being {@link Ext.form.Basic#submit submitted} even when it is
+     * not disabled.
      */
     submitValue: true,
 
 <span id='Ext-form-field-Field-cfg-validateOnChange'>    /**
 </span>     * @cfg {Boolean} validateOnChange
-     * &lt;p&gt;Specifies whether this field should be validated immediately whenever a change in its value is detected.
-     * Defaults to &lt;tt&gt;true&lt;/tt&gt;. If the validation results in a change in the field's validity, a
-     * {@link #validitychange} event will be fired. This allows the field to show feedback about the
-     * validity of its contents immediately as the user is typing.&lt;/p&gt;
-     * &lt;p&gt;When set to &lt;tt&gt;false&lt;/tt&gt;, feedback will not be immediate. However the form will still be validated
-     * before submitting if the &lt;tt&gt;clientValidation&lt;/tt&gt; option to {@link Ext.form.Basic#doAction} is
-     * enabled, or if the field or form are validated manually.&lt;/p&gt;
-     * &lt;p&gt;See also {@link Ext.form.field.Base#checkChangeEvents}for controlling how changes to the field's value are detected.&lt;/p&gt;
+     * Specifies whether this field should be validated immediately whenever a change in its value is detected.
+     * If the validation results in a change in the field's validity, a {@link #validitychange} event will be
+     * fired. This allows the field to show feedback about the validity of its contents immediately as the user is
+     * typing.
+     *
+     * When set to false, feedback will not be immediate. However the form will still be validated before submitting if
+     * the clientValidation option to {@link Ext.form.Basic#doAction} is enabled, or if the field or form are validated
+     * manually.
+     *
+     * See also {@link Ext.form.field.Base#checkChangeEvents} for controlling how changes to the field's value are
+     * detected.
      */
     validateOnChange: true,
 
@@ -88,8 +89,8 @@ Ext.define('Ext.form.field.Field', {
     suspendCheckChange: 0,
 
 <span id='Ext-form-field-Field-method-initField'>    /**
-</span>     * Initializes this Field mixin on the current instance. Components using this mixin should call
-     * this method during their own initialization process.
+</span>     * Initializes this Field mixin on the current instance. Components using this mixin should call this method during
+     * their own initialization process.
      */
     initField: function() {
         this.addEvents(
@@ -97,8 +98,8 @@ Ext.define('Ext.form.field.Field', {
 </span>             * @event change
              * Fires when a user-initiated change is detected in the value of the field.
              * @param {Ext.form.field.Field} this
-             * @param {Mixed} newValue The new value
-             * @param {Mixed} oldValue The original value
+             * @param {Object} newValue The new value
+             * @param {Object} oldValue The original value
              */
             'change',
 <span id='Ext-form-field-Field-event-validitychange'>            /**
@@ -121,18 +122,15 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-initValue'>    /**
-</span>     * @protected
-     * Initializes the field's value based on the initial config.
+</span>     * Initializes the field's value based on the initial config.
      */
     initValue: function() {
         var me = this;
 
 <span id='Ext-form-field-Field-property-originalValue'>        /**
-</span>         * @property originalValue
-         * @type Mixed
-         * The original value of the field as configured in the {@link #value} configuration, or as loaded by
-         * the last form load operation if the form's {@link Ext.form.Basic#trackResetOnLoad trackResetOnLoad}
-         * setting is &lt;code&gt;true&lt;/code&gt;.
+</span>         * @property {Object} originalValue
+         * The original value of the field as configured in the {@link #value} configuration, or as loaded by the last
+         * form load operation if the form's {@link Ext.form.Basic#trackResetOnLoad trackResetOnLoad} setting is `true`.
          */
         me.originalValue = me.lastValue = me.value;
 
@@ -143,8 +141,8 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-getName'>    /**
-</span>     * Returns the {@link Ext.form.field.Field#name name} attribute of the field. This is used as the parameter
-     * name when including the field value in a {@link Ext.form.Basic#submit form submit()}.
+</span>     * Returns the {@link Ext.form.field.Field#name name} attribute of the field. This is used as the parameter name
+     * when including the field value in a {@link Ext.form.Basic#submit form submit()}.
      * @return {String} name The field {@link Ext.form.field.Field#name name}
      */
     getName: function() {
@@ -154,15 +152,15 @@ Ext.define('Ext.form.field.Field', {
 <span id='Ext-form-field-Field-method-getValue'>    /**
 </span>     * Returns the current data value of the field. The type of value returned is particular to the type of the
      * particular field (e.g. a Date object for {@link Ext.form.field.Date}).
-     * @return {Mixed} value The field value
+     * @return {Object} value The field value
      */
     getValue: function() {
         return this.value;
     },
-    
+
 <span id='Ext-form-field-Field-method-setValue'>    /**
 </span>     * Sets a data value into the field and runs the change detection and validation.
-     * @param {Mixed} value The value to set
+     * @param {Object} value The value to set
      * @return {Ext.form.field.Field} this
      */
     setValue: function(value) {
@@ -173,26 +171,39 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-isEqual'>    /**
-</span>     * Returns whether two field {@link #getValue values} are logically equal. Field implementations may override
-     * this to provide custom comparison logic appropriate for the particular field's data type.
-     * @param {Mixed} value1 The first value to compare
-     * @param {Mixed} value2 The second value to compare
+</span>     * Returns whether two field {@link #getValue values} are logically equal. Field implementations may override this
+     * to provide custom comparison logic appropriate for the particular field's data type.
+     * @param {Object} value1 The first value to compare
+     * @param {Object} value2 The second value to compare
      * @return {Boolean} True if the values are equal, false if inequal.
      */
     isEqual: function(value1, value2) {
         return String(value1) === String(value2);
     },
+    
+<span id='Ext-form-field-Field-method-isEqualAsString'>    /**
+</span>     * Returns whether two values are logically equal.
+     * Similar to {@link #isEqual}, however null or undefined values will be treated as empty strings.
+     * @private
+     * @param {Object} value1 The first value to compare
+     * @param {Object} value2 The second value to compare
+     * @return {Boolean} True if the values are equal, false if inequal.
+     */
+    isEqualAsString: function(value1, value2){
+        return String(Ext.value(value1, '')) === String(Ext.value(value2, ''));    
+    },
 
 <span id='Ext-form-field-Field-method-getSubmitData'>    /**
-</span>     * &lt;p&gt;Returns the parameter(s) that would be included in a standard form submit for this field. Typically this
-     * will be an object with a single name-value pair, the name being this field's {@link #getName name} and the
-     * value being its current stringified value. More advanced field implementations may return more than one
-     * name-value pair.&lt;/p&gt;
-     * &lt;p&gt;Note that the values returned from this method are not guaranteed to have been successfully
-     * {@link #validate validated}.&lt;/p&gt;
-     * @return {Object} A mapping of submit parameter names to values; each value should be a string, or an array
-     * of strings if that particular name has multiple values. It can also return &lt;tt&gt;null&lt;/tt&gt; if there are no
-     * parameters to be submitted.
+</span>     * Returns the parameter(s) that would be included in a standard form submit for this field. Typically this will be
+     * an object with a single name-value pair, the name being this field's {@link #getName name} and the value being
+     * its current stringified value. More advanced field implementations may return more than one name-value pair.
+     *
+     * Note that the values returned from this method are not guaranteed to have been successfully {@link #validate
+     * validated}.
+     *
+     * @return {Object} A mapping of submit parameter names to values; each value should be a string, or an array of
+     * strings if that particular name has multiple values. It can also return null if there are no parameters to be
+     * submitted.
      */
     getSubmitData: function() {
         var me = this,
@@ -205,16 +216,18 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-getModelData'>    /**
-</span>     * &lt;p&gt;Returns the value(s) that should be saved to the {@link Ext.data.Model} instance for this field, when
-     * {@link Ext.form.Basic#updateRecord} is called. Typically this will be an object with a single name-value
-     * pair, the name being this field's {@link #getName name} and the value being its current data value. More
-     * advanced field implementations may return more than one name-value pair. The returned values will be
-     * saved to the corresponding field names in the Model.&lt;/p&gt;
-     * &lt;p&gt;Note that the values returned from this method are not guaranteed to have been successfully
-     * {@link #validate validated}.&lt;/p&gt;
-     * @return {Object} A mapping of submit parameter names to values; each value should be a string, or an array
-     * of strings if that particular name has multiple values. It can also return &lt;tt&gt;null&lt;/tt&gt; if there are no
-     * parameters to be submitted.
+</span>     * Returns the value(s) that should be saved to the {@link Ext.data.Model} instance for this field, when {@link
+     * Ext.form.Basic#updateRecord} is called. Typically this will be an object with a single name-value pair, the name
+     * being this field's {@link #getName name} and the value being its current data value. More advanced field
+     * implementations may return more than one name-value pair. The returned values will be saved to the corresponding
+     * field names in the Model.
+     *
+     * Note that the values returned from this method are not guaranteed to have been successfully {@link #validate
+     * validated}.
+     *
+     * @return {Object} A mapping of submit parameter names to values; each value should be a string, or an array of
+     * strings if that particular name has multiple values. It can also return null if there are no parameters to be
+     * submitted.
      */
     getModelData: function() {
         var me = this,
@@ -227,12 +240,12 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-reset'>    /**
-</span>     * Resets the current field value to the originally loaded value and clears any validation messages.
-     * See {@link Ext.form.Basic}.{@link Ext.form.Basic#trackResetOnLoad trackResetOnLoad}
+</span>     * Resets the current field value to the originally loaded value and clears any validation messages. See {@link
+     * Ext.form.Basic}.{@link Ext.form.Basic#trackResetOnLoad trackResetOnLoad}
      */
     reset : function(){
         var me = this;
-        
+
         me.setValue(me.originalValue);
         me.clearInvalid();
         // delete here so we reset back to the original state
@@ -240,8 +253,8 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-resetOriginalValue'>    /**
-</span>     * Resets the field's {@link #originalValue} property so it matches the current {@link #getValue value}.
-     * This is called by {@link Ext.form.Basic}.{@link Ext.form.Basic#setValues setValues} if the form's
+</span>     * Resets the field's {@link #originalValue} property so it matches the current {@link #getValue value}. This is
+     * called by {@link Ext.form.Basic}.{@link Ext.form.Basic#setValues setValues} if the form's
      * {@link Ext.form.Basic#trackResetOnLoad trackResetOnLoad} property is set to true.
      */
     resetOriginalValue: function() {
@@ -250,15 +263,14 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-checkChange'>    /**
-</span>     * &lt;p&gt;Checks whether the value of the field has changed since the last time it was checked. If the value
-     * has changed, it:&lt;/p&gt;
-     * &lt;ol&gt;
-     * &lt;li&gt;Fires the {@link #change change event},&lt;/li&gt;
-     * &lt;li&gt;Performs validation if the {@link #validateOnChange} config is enabled, firing the
-     * {@link #validationchange validationchange event} if the validity has changed, and&lt;/li&gt;
-     * &lt;li&gt;Checks the {@link #isDirty dirty state} of the field and fires the {@link #dirtychange dirtychange event}
-     * if it has changed.&lt;/li&gt;
-     * &lt;/ol&gt;
+</span>     * Checks whether the value of the field has changed since the last time it was checked.
+     * If the value has changed, it:
+     *
+     * 1. Fires the {@link #change change event},
+     * 2. Performs validation if the {@link #validateOnChange} config is enabled, firing the
+     *    {@link #validitychange validitychange event} if the validity has changed, and
+     * 3. Checks the {@link #isDirty dirty state} of the field and fires the {@link #dirtychange dirtychange event}
+     *    if it has changed.
      */
     checkChange: function() {
         if (!this.suspendCheckChange) {
@@ -286,14 +298,14 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-isDirty'>    /**
-</span>     * &lt;p&gt;Returns true if the value of this Field has been changed from its {@link #originalValue}.
-     * Will always return false if the field is disabled.&lt;/p&gt;
-     * &lt;p&gt;Note that if the owning {@link Ext.form.Basic form} was configured with
-     * {@link Ext.form.Basic#trackResetOnLoad trackResetOnLoad}
-     * then the {@link #originalValue} is updated when the values are loaded by
-     * {@link Ext.form.Basic}.{@link Ext.form.Basic#setValues setValues}.&lt;/p&gt;
-     * @return {Boolean} True if this field has been changed from its original value (and
-     * is not disabled), false otherwise.
+</span>     * Returns true if the value of this Field has been changed from its {@link #originalValue}.
+     * Will always return false if the field is disabled.
+     *
+     * Note that if the owning {@link Ext.form.Basic form} was configured with
+     * {@link Ext.form.Basic#trackResetOnLoad trackResetOnLoad} then the {@link #originalValue} is updated when
+     * the values are loaded by {@link Ext.form.Basic}.{@link Ext.form.Basic#setValues setValues}.
+     * @return {Boolean} True if this field has been changed from its original value (and is not disabled),
+     * false otherwise.
      */
     isDirty : function() {
         var me = this;
@@ -301,8 +313,8 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-checkDirty'>    /**
-</span>     * Checks the {@link #isDirty} state of the field and if it has changed since the last time
-     * it was checked, fires the {@link #dirtychange} event.
+</span>     * Checks the {@link #isDirty} state of the field and if it has changed since the last time it was checked,
+     * fires the {@link #dirtychange} event.
      */
     checkDirty: function() {
         var me = this,
@@ -321,22 +333,26 @@ Ext.define('Ext.form.field.Field', {
     onDirtyChange: Ext.emptyFn,
 
 <span id='Ext-form-field-Field-method-getErrors'>    /**
-</span>     * &lt;p&gt;Runs this field's validators and returns an array of error messages for any validation failures.
-     * This is called internally during validation and would not usually need to be used manually.&lt;/p&gt;
-     * &lt;p&gt;Each subclass should override or augment the return value to provide their own errors.&lt;/p&gt;
-     * @param {Mixed} value The value to get errors for (defaults to the current field value)
-     * @return {Array} All error messages for this field; an empty Array if none.
+</span>     * Runs this field's validators and returns an array of error messages for any validation failures. This is called
+     * internally during validation and would not usually need to be used manually.
+     *
+     * Each subclass should override or augment the return value to provide their own errors.
+     *
+     * @param {Object} value The value to get errors for (defaults to the current field value)
+     * @return {String[]} All error messages for this field; an empty Array if none.
      */
     getErrors: function(value) {
         return [];
     },
 
 <span id='Ext-form-field-Field-method-isValid'>    /**
-</span>     * &lt;p&gt;Returns whether or not the field value is currently valid by {@link #getErrors validating} the
-     * field's current value. The {@link #validitychange} event will not be fired; use {@link #validate}
-     * instead if you want the event to fire. &lt;b&gt;Note&lt;/b&gt;: {@link #disabled} fields are always treated as valid.&lt;/p&gt;
-     * &lt;p&gt;Implementations are encouraged to ensure that this method does not have side-effects such as
-     * triggering error message display.&lt;/p&gt;
+</span>     * Returns whether or not the field value is currently valid by {@link #getErrors validating} the field's current
+     * value. The {@link #validitychange} event will not be fired; use {@link #validate} instead if you want the event
+     * to fire. **Note**: {@link #disabled} fields are always treated as valid.
+     *
+     * Implementations are encouraged to ensure that this method does not have side-effects such as triggering error
+     * message display.
+     *
      * @return {Boolean} True if the value is valid, else false
      */
     isValid : function() {
@@ -345,11 +361,13 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-validate'>    /**
-</span>     * &lt;p&gt;Returns whether or not the field value is currently valid by {@link #getErrors validating} the
-     * field's current value, and fires the {@link #validitychange} event if the field's validity has
-     * changed since the last validation. &lt;b&gt;Note&lt;/b&gt;: {@link #disabled} fields are always treated as valid.&lt;/p&gt;
-     * &lt;p&gt;Custom implementations of this method are allowed to have side-effects such as triggering error
-     * message display. To validate without side-effects, use {@link #isValid}.&lt;/p&gt;
+</span>     * Returns whether or not the field value is currently valid by {@link #getErrors validating} the field's current
+     * value, and fires the {@link #validitychange} event if the field's validity has changed since the last validation.
+     * **Note**: {@link #disabled} fields are always treated as valid.
+     *
+     * Custom implementations of this method are allowed to have side-effects such as triggering error message display.
+     * To validate without side-effects, use {@link #isValid}.
+     *
      * @return {Boolean} True if the value is valid, else false
      */
     validate : function() {
@@ -363,24 +381,29 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-batchChanges'>    /**
-</span>     * A utility for grouping a set of modifications which may trigger value changes into a single
-     * transaction, to prevent excessive firing of {@link #change} events. This is useful for instance
-     * if the field has sub-fields which are being updated as a group; you don't want the container
-     * field to check its own changed state for each subfield change.
-     * @param fn A function containing the transaction code
+</span>     * A utility for grouping a set of modifications which may trigger value changes into a single transaction, to
+     * prevent excessive firing of {@link #change} events. This is useful for instance if the field has sub-fields which
+     * are being updated as a group; you don't want the container field to check its own changed state for each subfield
+     * change.
+     * @param {Object} fn A function containing the transaction code
      */
     batchChanges: function(fn) {
-        this.suspendCheckChange++;
-        fn();
-        this.suspendCheckChange--;
+        try {
+            this.suspendCheckChange++;
+            fn();
+        } catch(e){
+            throw e;
+        } finally {
+            this.suspendCheckChange--;
+        }
         this.checkChange();
     },
 
 <span id='Ext-form-field-Field-method-isFileUpload'>    /**
-</span>     * Returns whether this Field is a file upload field; if it returns true, forms will use
-     * special techniques for {@link Ext.form.Basic#submit submitting the form} via AJAX. See
-     * {@link Ext.form.Basic#hasUpload} for details. If this returns true, the {@link #extractFileInput}
-     * method must also be implemented to return the corresponding file input element.
+</span>     * Returns whether this Field is a file upload field; if it returns true, forms will use special techniques for
+     * {@link Ext.form.Basic#submit submitting the form} via AJAX. See {@link Ext.form.Basic#hasUpload} for details. If
+     * this returns true, the {@link #extractFileInput} method must also be implemented to return the corresponding file
+     * input element.
      * @return {Boolean}
      */
     isFileUpload: function() {
@@ -388,35 +411,36 @@ Ext.define('Ext.form.field.Field', {
     },
 
 <span id='Ext-form-field-Field-method-extractFileInput'>    /**
-</span>     * Only relevant if the instance's {@link #isFileUpload} method returns true. Returns a reference
-     * to the file input DOM element holding the user's selected file. The input will be appended into
-     * the submission form and will not be returned, so this method should also create a replacement.
-     * @return {HTMLInputElement}
+</span>     * Only relevant if the instance's {@link #isFileUpload} method returns true. Returns a reference to the file input
+     * DOM element holding the user's selected file. The input will be appended into the submission form and will not be
+     * returned, so this method should also create a replacement.
+     * @return {HTMLElement}
      */
     extractFileInput: function() {
         return null;
     },
 
 <span id='Ext-form-field-Field-method-markInvalid'>    /**
-</span>     * &lt;p&gt;Associate one or more error messages with this field. Components using this mixin should implement
-     * this method to update the component's rendering to display the messages.&lt;/p&gt;
-     * &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this method does not cause the Field's {@link #validate} or {@link #isValid} methods to
-     * return &lt;code&gt;false&lt;/code&gt; if the value does &lt;i&gt;pass&lt;/i&gt; validation. So simply marking a Field as invalid
-     * will not prevent submission of forms submitted with the {@link Ext.form.action.Submit#clientValidation}
-     * option set.&lt;/p&gt;
-     * @param {String/Array} errors The error message(s) for the field.
-     * @method
+</span>     * @method markInvalid
+     * Associate one or more error messages with this field. Components using this mixin should implement this method to
+     * update the component's rendering to display the messages.
+     *
+     * **Note**: this method does not cause the Field's {@link #validate} or {@link #isValid} methods to return `false`
+     * if the value does _pass_ validation. So simply marking a Field as invalid will not prevent submission of forms
+     * submitted with the {@link Ext.form.action.Submit#clientValidation} option set.
+     *
+     * @param {String/String[]} errors The error message(s) for the field.
      */
     markInvalid: Ext.emptyFn,
 
 <span id='Ext-form-field-Field-method-clearInvalid'>    /**
-</span>     * &lt;p&gt;Clear any invalid styles/messages for this field. Components using this mixin should implement
-     * this method to update the components rendering to clear any existing messages.&lt;/p&gt;
-     * &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this method does not cause the Field's {@link #validate} or {@link #isValid} methods to
-     * return &lt;code&gt;true&lt;/code&gt; if the value does not &lt;i&gt;pass&lt;/i&gt; validation. So simply clearing a field's errors
-     * will not necessarily allow submission of forms submitted with the {@link Ext.form.action.Submit#clientValidation}
-     * option set.&lt;/p&gt;
-     * @method
+</span>     * @method clearInvalid
+     * Clear any invalid styles/messages for this field. Components using this mixin should implement this method to
+     * update the components rendering to clear any existing messages.
+     *
+     * **Note**: this method does not cause the Field's {@link #validate} or {@link #isValid} methods to return `true`
+     * if the value does not _pass_ validation. So simply clearing a field's errors will not necessarily allow
+     * submission of forms submitted with the {@link Ext.form.action.Submit#clientValidation} option set.
      */
     clearInvalid: Ext.emptyFn