Upgrade to ExtJS 4.0.7 - Released 10/19/2011
[extjs.git] / docs / source / Text.html
index f46f5ec..a5c176c 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-Text'>/**
-</span> * @class Ext.form.field.Text
- * @extends Ext.form.field.Base
-A basic text field.  Can be used as a direct replacement for traditional text inputs,
-or as the base class for more sophisticated input controls (like {@link Ext.form.field.TextArea}
-and {@link Ext.form.field.ComboBox}). Has support for empty-field placeholder values (see {@link #emptyText}).
-
-#Validation#
-
-The Text field has a useful set of validations built in:
-
-- {@link #allowBlank} for making the field required
-- {@link #minLength} for requiring a minimum value length
-- {@link #maxLength} for setting a maximum value length (with {@link #enforceMaxLength} to add it
-  as the `maxlength` attribute on the input element)
-- {@link #regex} to specify a custom regular expression for validation
-
-In addition, custom validations may be added:
-- {@link #vtype} specifies a virtual type implementation from {@link Ext.form.field.VTypes} which can contain
-  custom validation logic
-- {@link #validator} allows a custom arbitrary function to be called during validation
-
-The details around how and when each of these validation options get used are described in the
-documentation for {@link #getErrors}.
-
-By default, the field value is checked for validity immediately while the user is typing in the
-field. This can be controlled with the {@link #validateOnChange}, {@link #checkChangeEvents}, and
-{@link #checkChangeBugger} configurations. Also see the details on Form Validation in the
-{@link Ext.form.Panel} class documentation.
-
-#Masking and Character Stripping#
-
-Text fields can be configured with custom regular expressions to be applied to entered values before
-validation: see {@link #maskRe} and {@link #stripCharsRe} for details.
-{@img Ext.form.Text/Ext.form.Text.png Ext.form.Text component}
-#Example usage:#
-
-    Ext.create('Ext.form.Panel', {
-        title: 'Contact Info',
-        width: 300,
-        bodyPadding: 10,
-        renderTo: Ext.getBody(),        
-        items: [{
-            xtype: 'textfield',
-            name: 'name',
-            fieldLabel: 'Name',
-            allowBlank: false  // requires a non-empty value
-        }, {
-            xtype: 'textfield',
-            name: 'email',
-            fieldLabel: 'Email Address',
-            vtype: 'email'  // requires value to be a valid email address format
-        }]
-    }); 
-
+</span> * @docauthor Jason Johnston &lt;jason@sencha.com&gt;
+ *
+ * A basic text field.  Can be used as a direct replacement for traditional text inputs,
+ * or as the base class for more sophisticated input controls (like {@link Ext.form.field.TextArea}
+ * and {@link Ext.form.field.ComboBox}). Has support for empty-field placeholder values (see {@link #emptyText}).
+ *
+ * # Validation
+ *
+ * The Text field has a useful set of validations built in:
+ *
+ * - {@link #allowBlank} for making the field required
+ * - {@link #minLength} for requiring a minimum value length
+ * - {@link #maxLength} for setting a maximum value length (with {@link #enforceMaxLength} to add it
+ *   as the `maxlength` attribute on the input element)
+ * - {@link #regex} to specify a custom regular expression for validation
+ *
+ * In addition, custom validations may be added:
+ *
+ * - {@link #vtype} specifies a virtual type implementation from {@link Ext.form.field.VTypes} which can contain
+ *   custom validation logic
+ * - {@link #validator} allows a custom arbitrary function to be called during validation
+ *
+ * The details around how and when each of these validation options get used are described in the
+ * documentation for {@link #getErrors}.
+ *
+ * By default, the field value is checked for validity immediately while the user is typing in the
+ * field. This can be controlled with the {@link #validateOnChange}, {@link #checkChangeEvents}, and
+ * {@link #checkChangeBuffer} configurations. Also see the details on Form Validation in the
+ * {@link Ext.form.Panel} class documentation.
  *
- * @markdown
- * @docauthor Jason Johnston &lt;jason@sencha.com&gt;
+ * # Masking and Character Stripping
+ *
+ * Text fields can be configured with custom regular expressions to be applied to entered values before
+ * validation: see {@link #maskRe} and {@link #stripCharsRe} for details.
+ *
+ * # Example usage
+ *
+ *     @example
+ *     Ext.create('Ext.form.Panel', {
+ *         title: 'Contact Info',
+ *         width: 300,
+ *         bodyPadding: 10,
+ *         renderTo: Ext.getBody(),
+ *         items: [{
+ *             xtype: 'textfield',
+ *             name: 'name',
+ *             fieldLabel: 'Name',
+ *             allowBlank: false  // requires a non-empty value
+ *         }, {
+ *             xtype: 'textfield',
+ *             name: 'email',
+ *             fieldLabel: 'Email Address',
+ *             vtype: 'email'  // requires value to be a valid email address format
+ *         }]
+ *     });
  */
 Ext.define('Ext.form.field.Text', {
     extend:'Ext.form.field.Base',
@@ -83,161 +79,168 @@ Ext.define('Ext.form.field.Text', {
     alternateClassName: ['Ext.form.TextField', 'Ext.form.Text'],
 
 <span id='Ext-form-field-Text-cfg-vtypeText'>    /**
-</span>     * @cfg {String} vtypeText A custom error message to display in place of the default message provided
-     * for the &lt;b&gt;&lt;code&gt;{@link #vtype}&lt;/code&gt;&lt;/b&gt; currently set for this field (defaults to &lt;tt&gt;undefined&lt;/tt&gt;).
-     * &lt;b&gt;Note&lt;/b&gt;: only applies if &lt;b&gt;&lt;code&gt;{@link #vtype}&lt;/code&gt;&lt;/b&gt; is set, else ignored.
+</span>     * @cfg {String} vtypeText
+     * A custom error message to display in place of the default message provided for the **`{@link #vtype}`** currently
+     * set for this field. **Note**: only applies if **`{@link #vtype}`** is set, else ignored.
      */
-    
+
 <span id='Ext-form-field-Text-cfg-stripCharsRe'>    /**
-</span>     * @cfg {RegExp} stripCharsRe A JavaScript RegExp object used to strip unwanted content from the value
-     * before validation (defaults to &lt;tt&gt;undefined&lt;/tt&gt;).
+</span>     * @cfg {RegExp} stripCharsRe
+     * A JavaScript RegExp object used to strip unwanted content from the value
+     * before validation. If &lt;tt&gt;stripCharsRe&lt;/tt&gt; is specified,
+     * every character matching &lt;tt&gt;stripCharsRe&lt;/tt&gt; will be removed before fed to validation.
+     * This does not change the value of the field.
      */
 
 <span id='Ext-form-field-Text-cfg-size'>    /**
-</span>     * @cfg {Number} size An initial value for the 'size' attribute on the text input element. This is only
-     * used if the field has no configured {@link #width} and is not given a width by its container's layout.
-     * Defaults to &lt;tt&gt;20&lt;/tt&gt;.
+</span>     * @cfg {Number} size
+     * An initial value for the 'size' attribute on the text input element. This is only used if the field has no
+     * configured {@link #width} and is not given a width by its container's layout. Defaults to 20.
      */
     size: 20,
 
 <span id='Ext-form-field-Text-cfg-grow'>    /**
-</span>     * @cfg {Boolean} grow &lt;tt&gt;true&lt;/tt&gt; if this field should automatically grow and shrink to its content
-     * (defaults to &lt;tt&gt;false&lt;/tt&gt;)
+</span>     * @cfg {Boolean} [grow=false]
+     * true if this field should automatically grow and shrink to its content
      */
 
 <span id='Ext-form-field-Text-cfg-growMin'>    /**
-</span>     * @cfg {Number} growMin The minimum width to allow when &lt;code&gt;&lt;b&gt;{@link #grow}&lt;/b&gt; = true&lt;/code&gt; (defaults
-     * to &lt;tt&gt;30&lt;/tt&gt;)
+</span>     * @cfg {Number} growMin
+     * The minimum width to allow when `{@link #grow} = true`
      */
     growMin : 30,
-    
+
 <span id='Ext-form-field-Text-cfg-growMax'>    /**
-</span>     * @cfg {Number} growMax The maximum width to allow when &lt;code&gt;&lt;b&gt;{@link #grow}&lt;/b&gt; = true&lt;/code&gt; (defaults
-     * to &lt;tt&gt;800&lt;/tt&gt;)
+</span>     * @cfg {Number} growMax
+     * The maximum width to allow when `{@link #grow} = true`
      */
     growMax : 800,
 
 <span id='Ext-form-field-Text-cfg-growAppend'>    /**
 </span>     * @cfg {String} growAppend
-     * A string that will be appended to the field's current value for the purposes of calculating the target
-     * field size. Only used when the {@link #grow} config is &lt;tt&gt;true&lt;/tt&gt;. Defaults to a single capital &quot;W&quot;
-     * (the widest character in common fonts) to leave enough space for the next typed character and avoid the
-     * field value shifting before the width is adjusted.
+     * A string that will be appended to the field's current value for the purposes of calculating the target field
+     * size. Only used when the {@link #grow} config is true. Defaults to a single capital &quot;W&quot; (the widest character in
+     * common fonts) to leave enough space for the next typed character and avoid the field value shifting before the
+     * width is adjusted.
      */
     growAppend: 'W',
-    
+
 <span id='Ext-form-field-Text-cfg-vtype'>    /**
-</span>     * @cfg {String} vtype A validation type name as defined in {@link Ext.form.field.VTypes} (defaults to &lt;tt&gt;undefined&lt;/tt&gt;)
+</span>     * @cfg {String} vtype
+     * A validation type name as defined in {@link Ext.form.field.VTypes}
      */
 
 <span id='Ext-form-field-Text-cfg-maskRe'>    /**
-</span>     * @cfg {RegExp} maskRe An input mask regular expression that will be used to filter keystrokes that do
-     * not match (defaults to &lt;tt&gt;undefined&lt;/tt&gt;)
+</span>     * @cfg {RegExp} maskRe An input mask regular expression that will be used to filter keystrokes (character being
+     * typed) that do not match.
+     * Note: It dose not filter characters already in the input.
      */
 
 <span id='Ext-form-field-Text-cfg-disableKeyFilter'>    /**
-</span>     * @cfg {Boolean} disableKeyFilter Specify &lt;tt&gt;true&lt;/tt&gt; to disable input keystroke filtering (defaults
-     * to &lt;tt&gt;false&lt;/tt&gt;)
+</span>     * @cfg {Boolean} [disableKeyFilter=false]
+     * Specify true to disable input keystroke filtering
      */
 
 <span id='Ext-form-field-Text-cfg-allowBlank'>    /**
-</span>     * @cfg {Boolean} allowBlank Specify &lt;tt&gt;false&lt;/tt&gt; to validate that the value's length is &gt; 0 (defaults to
-     * &lt;tt&gt;true&lt;/tt&gt;)
+</span>     * @cfg {Boolean} allowBlank
+     * Specify false to validate that the value's length is &gt; 0
      */
     allowBlank : true,
-    
+
 <span id='Ext-form-field-Text-cfg-minLength'>    /**
-</span>     * @cfg {Number} minLength Minimum input field length required (defaults to &lt;tt&gt;0&lt;/tt&gt;)
+</span>     * @cfg {Number} minLength
+     * Minimum input field length required
      */
     minLength : 0,
-    
+
 <span id='Ext-form-field-Text-cfg-maxLength'>    /**
-</span>     * @cfg {Number} maxLength Maximum input field length allowed by validation (defaults to Number.MAX_VALUE).
-     * This behavior is intended to provide instant feedback to the user by improving usability to allow pasting
-     * and editing or overtyping and back tracking. To restrict the maximum number of characters that can be
-     * entered into the field use the &lt;tt&gt;&lt;b&gt;{@link Ext.form.field.Text#enforceMaxLength enforceMaxLength}&lt;/b&gt;&lt;/tt&gt; option.
+</span>     * @cfg {Number} maxLength
+     * Maximum input field length allowed by validation (defaults to Number.MAX_VALUE). This behavior is intended to
+     * provide instant feedback to the user by improving usability to allow pasting and editing or overtyping and back
+     * tracking. To restrict the maximum number of characters that can be entered into the field use the **{@link
+     * Ext.form.field.Text#enforceMaxLength enforceMaxLength}** option.
      */
     maxLength : Number.MAX_VALUE,
-    
+
 <span id='Ext-form-field-Text-cfg-enforceMaxLength'>    /**
-</span>     * @cfg {Boolean} enforceMaxLength True to set the maxLength property on the underlying input field. Defaults to &lt;tt&gt;false&lt;/tt&gt;
+</span>     * @cfg {Boolean} enforceMaxLength
+     * True to set the maxLength property on the underlying input field. Defaults to false
      */
 
 <span id='Ext-form-field-Text-cfg-minLengthText'>    /**
-</span>     * @cfg {String} minLengthText Error text to display if the &lt;b&gt;&lt;tt&gt;{@link #minLength minimum length}&lt;/tt&gt;&lt;/b&gt;
-     * validation fails (defaults to &lt;tt&gt;'The minimum length for this field is {minLength}'&lt;/tt&gt;)
+</span>     * @cfg {String} minLengthText
+     * Error text to display if the **{@link #minLength minimum length}** validation fails.
      */
     minLengthText : 'The minimum length for this field is {0}',
-    
+
 <span id='Ext-form-field-Text-cfg-maxLengthText'>    /**
-</span>     * @cfg {String} maxLengthText Error text to display if the &lt;b&gt;&lt;tt&gt;{@link #maxLength maximum length}&lt;/tt&gt;&lt;/b&gt;
-     * validation fails (defaults to &lt;tt&gt;'The maximum length for this field is {maxLength}'&lt;/tt&gt;)
+</span>     * @cfg {String} maxLengthText
+     * Error text to display if the **{@link #maxLength maximum length}** validation fails
      */
     maxLengthText : 'The maximum length for this field is {0}',
-    
+
 <span id='Ext-form-field-Text-cfg-selectOnFocus'>    /**
-</span>     * @cfg {Boolean} selectOnFocus &lt;tt&gt;true&lt;/tt&gt; to automatically select any existing field text when the field
-     * receives input focus (defaults to &lt;tt&gt;false&lt;/tt&gt;)
+</span>     * @cfg {Boolean} [selectOnFocus=false]
+     * true to automatically select any existing field text when the field receives input focus
      */
-    
+
 <span id='Ext-form-field-Text-cfg-blankText'>    /**
-</span>     * @cfg {String} blankText The error text to display if the &lt;b&gt;&lt;tt&gt;{@link #allowBlank}&lt;/tt&gt;&lt;/b&gt; validation
-     * fails (defaults to &lt;tt&gt;'This field is required'&lt;/tt&gt;)
+</span>     * @cfg {String} blankText
+     * The error text to display if the **{@link #allowBlank}** validation fails
      */
     blankText : 'This field is required',
-    
+
 <span id='Ext-form-field-Text-cfg-validator'>    /**
 </span>     * @cfg {Function} validator
-     * &lt;p&gt;A custom validation function to be called during field validation ({@link #getErrors})
-     * (defaults to &lt;tt&gt;undefined&lt;/tt&gt;). If specified, this function will be called first, allowing the
-     * developer to override the default validation process.&lt;/p&gt;
-     * &lt;br&gt;&lt;p&gt;This function will be passed the following Parameters:&lt;/p&gt;
-     * &lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
-     * &lt;li&gt;&lt;code&gt;value&lt;/code&gt;: &lt;i&gt;Mixed&lt;/i&gt;
-     * &lt;div class=&quot;sub-desc&quot;&gt;The current field value&lt;/div&gt;&lt;/li&gt;
-     * &lt;/ul&gt;&lt;/div&gt;
-     * &lt;br&gt;&lt;p&gt;This function is to Return:&lt;/p&gt;
-     * &lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
-     * &lt;li&gt;&lt;code&gt;true&lt;/code&gt;: &lt;i&gt;Boolean&lt;/i&gt;
-     * &lt;div class=&quot;sub-desc&quot;&gt;&lt;code&gt;true&lt;/code&gt; if the value is valid&lt;/div&gt;&lt;/li&gt;
-     * &lt;li&gt;&lt;code&gt;msg&lt;/code&gt;: &lt;i&gt;String&lt;/i&gt;
-     * &lt;div class=&quot;sub-desc&quot;&gt;An error message if the value is invalid&lt;/div&gt;&lt;/li&gt;
-     * &lt;/ul&gt;&lt;/div&gt;
+     * A custom validation function to be called during field validation ({@link #getErrors}).
+     * If specified, this function will be called first, allowing the developer to override the default validation
+     * process.
+     *
+     * This function will be passed the following parameters:
+     *
+     * @cfg {Object} validator.value The current field value
+     * @cfg {Boolean/String} validator.return
+     *
+     * - True if the value is valid
+     * - An error message if the value is invalid
      */
 
 <span id='Ext-form-field-Text-cfg-regex'>    /**
-</span>     * @cfg {RegExp} regex A JavaScript RegExp object to be tested against the field value during validation
-     * (defaults to &lt;tt&gt;undefined&lt;/tt&gt;). If the test fails, the field will be marked invalid using
-     * &lt;b&gt;&lt;tt&gt;{@link #regexText}&lt;/tt&gt;&lt;/b&gt;.
+</span>     * @cfg {RegExp} regex A JavaScript RegExp object to be tested against the field value during validation.
+     * If the test fails, the field will be marked invalid using
+     * either &lt;b&gt;&lt;tt&gt;{@link #regexText}&lt;/tt&gt;&lt;/b&gt; or &lt;b&gt;&lt;tt&gt;{@link #invalidText}&lt;/tt&gt;&lt;/b&gt;.
      */
 
 <span id='Ext-form-field-Text-cfg-regexText'>    /**
-</span>     * @cfg {String} regexText The error text to display if &lt;b&gt;&lt;tt&gt;{@link #regex}&lt;/tt&gt;&lt;/b&gt; is used and the
-     * test fails during validation (defaults to &lt;tt&gt;''&lt;/tt&gt;)
+</span>     * @cfg {String} regexText
+     * The error text to display if **{@link #regex}** is used and the test fails during validation
      */
     regexText : '',
-    
+
 <span id='Ext-form-field-Text-cfg-emptyText'>    /**
 </span>     * @cfg {String} emptyText
-     * &lt;p&gt;The default text to place into an empty field (defaults to &lt;tt&gt;undefined&lt;/tt&gt;).&lt;/p&gt;
-     * &lt;p&gt;Note that normally this value will be submitted to the server if this field is enabled; to prevent this
-     * you can set the {@link Ext.form.action.Action#submitEmptyText submitEmptyText} option of
-     * {@link Ext.form.Basic#submit} to &lt;tt&gt;false&lt;/tt&gt;.&lt;/p&gt;
-     * &lt;p&gt;Also note that if you use &lt;tt&gt;{@link #inputType inputType}:'file'&lt;/tt&gt;, {@link #emptyText} is not
-     * supported and should be avoided.&lt;/p&gt;
+     * The default text to place into an empty field.
+     *
+     * Note that normally this value will be submitted to the server if this field is enabled; to prevent this you can
+     * set the {@link Ext.form.action.Action#submitEmptyText submitEmptyText} option of {@link Ext.form.Basic#submit} to
+     * false.
+     *
+     * Also note that if you use {@link #inputType inputType}:'file', {@link #emptyText} is not supported and should be
+     * avoided.
      */
 
 <span id='Ext-form-field-Text-cfg-emptyCls'>    /**
-</span>     * @cfg {String} emptyCls The CSS class to apply to an empty field to style the &lt;b&gt;&lt;tt&gt;{@link #emptyText}&lt;/tt&gt;&lt;/b&gt;
-     * (defaults to &lt;tt&gt;'x-form-empty-field'&lt;/tt&gt;).  This class is automatically added and removed as needed
-     * depending on the current field value.
+</span>     * @cfg {String} [emptyCls='x-form-empty-field']
+     * The CSS class to apply to an empty field to style the **{@link #emptyText}**.
+     * This class is automatically added and removed as needed depending on the current field value.
      */
     emptyCls : Ext.baseCSSPrefix + 'form-empty-field',
 
     ariaRole: 'textbox',
 
 <span id='Ext-form-field-Text-cfg-enableKeyEvents'>    /**
-</span>     * @cfg {Boolean} enableKeyEvents &lt;tt&gt;true&lt;/tt&gt; to enable the proxying of key events for the HTML input field (defaults to &lt;tt&gt;false&lt;/tt&gt;)
+</span>     * @cfg {Boolean} [enableKeyEvents=false]
+     * true to enable the proxying of key events for the HTML input field
      */
 
     componentLayout: 'textfield',
@@ -247,10 +250,9 @@ Ext.define('Ext.form.field.Text', {
         this.addEvents(
 <span id='Ext-form-field-Text-event-autosize'>            /**
 </span>             * @event autosize
-             * Fires when the &lt;tt&gt;&lt;b&gt;{@link #autoSize}&lt;/b&gt;&lt;/tt&gt; function is triggered and the field is
-             * resized according to the {@link #grow}/{@link #growMin}/{@link #growMax} configs as a result.
-             * This event provides a hook for the developer to apply additional logic at runtime to resize the
-             * field if needed.
+             * Fires when the **{@link #autoSize}** function is triggered and the field is resized according to the
+             * {@link #grow}/{@link #growMin}/{@link #growMax} configs as a result. This event provides a hook for the
+             * developer to apply additional logic at runtime to resize the field if needed.
              * @param {Ext.form.field.Text} this This text field
              * @param {Number} width The new field width
              */
@@ -258,24 +260,21 @@ Ext.define('Ext.form.field.Text', {
 
 <span id='Ext-form-field-Text-event-keydown'>            /**
 </span>             * @event keydown
-             * Keydown input field event. This event only fires if &lt;tt&gt;&lt;b&gt;{@link #enableKeyEvents}&lt;/b&gt;&lt;/tt&gt;
-             * is set to true.
+             * Keydown input field event. This event only fires if **{@link #enableKeyEvents}** is set to true.
              * @param {Ext.form.field.Text} this This text field
              * @param {Ext.EventObject} e
              */
             'keydown',
 <span id='Ext-form-field-Text-event-keyup'>            /**
 </span>             * @event keyup
-             * Keyup input field event. This event only fires if &lt;tt&gt;&lt;b&gt;{@link #enableKeyEvents}&lt;/b&gt;&lt;/tt&gt;
-             * is set to true.
+             * Keyup input field event. This event only fires if **{@link #enableKeyEvents}** is set to true.
              * @param {Ext.form.field.Text} this This text field
              * @param {Ext.EventObject} e
              */
             'keyup',
 <span id='Ext-form-field-Text-event-keypress'>            /**
 </span>             * @event keypress
-             * Keypress input field event. This event only fires if &lt;tt&gt;&lt;b&gt;{@link #enableKeyEvents}&lt;/b&gt;&lt;/tt&gt;
-             * is set to true.
+             * Keypress input field event. This event only fires if **{@link #enableKeyEvents}** is set to true.
              * @param {Ext.form.field.Text} this This text field
              * @param {Ext.EventObject} e
              */
@@ -287,7 +286,7 @@ Ext.define('Ext.form.field.Text', {
     initEvents : function(){
         var me = this,
             el = me.inputEl;
-        
+
         me.callParent();
         if(me.selectOnFocus || me.emptyText){
             me.mon(el, 'mousedown', me.onMouseDown, me);
@@ -307,10 +306,11 @@ Ext.define('Ext.form.field.Text', {
     },
 
 <span id='Ext-form-field-Text-method-isEqual'>    /**
-</span>     * @private override - treat undefined and null values as equal to an empty string value
+</span>     * @private
+     * Override. Treat undefined and null values as equal to an empty string value.
      */
     isEqual: function(value1, value2) {
-        return String(Ext.value(value1, '')) === String(Ext.value(value2, ''));
+        return this.isEqualAsString(value1, value2);
     },
 
 <span id='Ext-form-field-Text-method-onChange'>    /**
@@ -321,7 +321,7 @@ Ext.define('Ext.form.field.Text', {
         this.callParent();
         this.autoSize();
     },
-    
+
     afterRender: function(){
         var me = this;
         if (me.enforceMaxLength) {
@@ -340,9 +340,9 @@ Ext.define('Ext.form.field.Text', {
     },
 
 <span id='Ext-form-field-Text-method-processRawValue'>    /**
-</span>     * Performs any necessary manipulation of a raw String value to prepare it for {@link #stringToValue conversion}
-     * and/or {@link #validate validation}. For text fields this applies the configured {@link #stripCharsRe} to the
-     * raw value.
+</span>     * Performs any necessary manipulation of a raw String value to prepare it for conversion and/or
+     * {@link #validate validation}. For text fields this applies the configured {@link #stripCharsRe}
+     * to the raw value.
      * @param {String} value The unprocessed string value
      * @return {String} The processed string value
      */
@@ -350,7 +350,7 @@ Ext.define('Ext.form.field.Text', {
         var me = this,
             stripRe = me.stripCharsRe,
             newValue;
-            
+
         if (stripRe) {
             newValue = value.replace(stripRe, '');
             if (newValue !== value) {
@@ -391,8 +391,7 @@ Ext.define('Ext.form.field.Text', {
 
 <span id='Ext-form-field-Text-method-reset'>    /**
 </span>     * Resets the current field value to the originally-loaded value and clears any validation messages.
-     * Also adds &lt;tt&gt;&lt;b&gt;{@link #emptyText}&lt;/b&gt;&lt;/tt&gt; and &lt;tt&gt;&lt;b&gt;{@link #emptyCls}&lt;/b&gt;&lt;/tt&gt; if the
-     * original value was blank.
+     * Also adds **{@link #emptyText}** and **{@link #emptyCls}** if the original value was blank.
      */
     reset : function(){
         this.callParent();
@@ -406,13 +405,13 @@ Ext.define('Ext.form.field.Text', {
 
         if (me.rendered &amp;&amp; emptyText) {
             isEmpty = me.getRawValue().length &lt; 1 &amp;&amp; !me.hasFocus;
-            
+
             if (Ext.supports.Placeholder) {
                 me.inputEl.dom.placeholder = emptyText;
             } else if (isEmpty) {
                 me.setRawValue(emptyText);
             }
-            
+
             //all browsers need this because of a styling issue with chrome + placeholders.
             //the text isnt vertically aligned when empty (and using the placeholder)
             if (isEmpty) {
@@ -457,16 +456,21 @@ Ext.define('Ext.form.field.Text', {
 
     // private
     filterKeys : function(e){
-        if(e.ctrlKey){
+        /*
+         * On European keyboards, the right alt key, Alt Gr, is used to type certain special characters.
+         * JS detects a keypress of this as ctrlKey &amp; altKey. As such, we check that alt isn't pressed
+         * so we can still process these special characters.
+         */
+        if (e.ctrlKey &amp;&amp; !e.altKey) {
             return;
         }
         var key = e.getKey(),
             charCode = String.fromCharCode(e.getCharCode());
-            
+
         if(Ext.isGecko &amp;&amp; (e.isNavKeyPress() || key === e.BACKSPACE || (key === e.DELETE &amp;&amp; e.button === -1))){
             return;
         }
-        
+
         if(!Ext.isGecko &amp;&amp; e.isSpecialKey() &amp;&amp; !charCode){
             return;
         }
@@ -476,10 +480,10 @@ Ext.define('Ext.form.field.Text', {
     },
 
 <span id='Ext-form-field-Text-method-getRawValue'>    /**
-</span>     * Returns the raw String value of the field, without performing any normalization, conversion, or validation.
-     * Gets the current value of the input element if the field has been rendered, ignoring the value if it is the
+</span>     * Returns the raw String value of the field, without performing any normalization, conversion, or validation. Gets
+     * the current value of the input element if the field has been rendered, ignoring the value if it is the
      * {@link #emptyText}. To get a normalized and converted value see {@link #getValue}.
-     * @return {String} value The raw String value of the field
+     * @return {String} The raw String value of the field
      */
     getRawValue: function() {
         var me = this,
@@ -493,17 +497,17 @@ Ext.define('Ext.form.field.Text', {
 <span id='Ext-form-field-Text-method-setValue'>    /**
 </span>     * Sets a data value into the field and runs the change detection and validation. Also applies any configured
      * {@link #emptyText} for text fields. To set the value directly without these inspections see {@link #setRawValue}.
-     * @param {Mixed} value The value to set
+     * @param {Object} value The value to set
      * @return {Ext.form.field.Text} this
      */
     setValue: function(value) {
         var me = this,
             inputEl = me.inputEl;
-        
+
         if (inputEl &amp;&amp; me.emptyText &amp;&amp; !Ext.isEmpty(value)) {
             inputEl.removeCls(me.emptyCls);
         }
-        
+
         me.callParent(arguments);
 
         me.applyEmptyText();
@@ -511,59 +515,58 @@ Ext.define('Ext.form.field.Text', {
     },
 
 <span id='Ext-form-field-Text-method-getErrors'>    /**
-</span>Validates a value according to the field's validation rules and returns an array of errors
-for any failing validations. Validation rules are processed in the following order:
-
-1. **Field specific validator**
-    
-    A validator offers a way to customize and reuse a validation specification.
-    If a field is configured with a `{@link #validator}`
-    function, it will be passed the current field value.  The `{@link #validator}`
-    function is expected to return either:
-    
-    - Boolean `true`  if the value is valid (validation continues).
-    - a String to represent the invalid message if invalid (validation halts).
-
-2. **Basic Validation**
-
-    If the `{@link #validator}` has not halted validation,
-    basic validation proceeds as follows:
-    
-    - `{@link #allowBlank}` : (Invalid message = `{@link #emptyText}`)
-    
-        Depending on the configuration of &lt;code&gt;{@link #allowBlank}&lt;/code&gt;, a
-        blank field will cause validation to halt at this step and return
-        Boolean true or false accordingly.
-    
-    - `{@link #minLength}` : (Invalid message = `{@link #minLengthText}`)
-
-        If the passed value does not satisfy the `{@link #minLength}`
-        specified, validation halts.
-
-    -  `{@link #maxLength}` : (Invalid message = `{@link #maxLengthText}`)
-
-        If the passed value does not satisfy the `{@link #maxLength}`
-        specified, validation halts.
-
-3. **Preconfigured Validation Types (VTypes)**
-
-    If none of the prior validation steps halts validation, a field
-    configured with a `{@link #vtype}` will utilize the
-    corresponding {@link Ext.form.field.VTypes VTypes} validation function.
-    If invalid, either the field's `{@link #vtypeText}` or
-    the VTypes vtype Text property will be used for the invalid message.
-    Keystrokes on the field will be filtered according to the VTypes
-    vtype Mask property.
-
-4. **Field specific regex test**
-
-    If none of the prior validation steps halts validation, a field's
-    configured &lt;code&gt;{@link #regex}&lt;/code&gt; test will be processed.
-    The invalid message for this test is configured with `{@link #regexText}`
-
-     * @param {Mixed} value The value to validate. The processed raw value will be used if nothing is passed
-     * @return {Array} Array of any validation errors
-     * @markdown
+</span>     * Validates a value according to the field's validation rules and returns an array of errors
+     * for any failing validations. Validation rules are processed in the following order:
+     *
+     * 1. **Field specific validator**
+     *
+     *     A validator offers a way to customize and reuse a validation specification.
+     *     If a field is configured with a `{@link #validator}`
+     *     function, it will be passed the current field value.  The `{@link #validator}`
+     *     function is expected to return either:
+     *
+     *     - Boolean `true`  if the value is valid (validation continues).
+     *     - a String to represent the invalid message if invalid (validation halts).
+     *
+     * 2. **Basic Validation**
+     *
+     *     If the `{@link #validator}` has not halted validation,
+     *     basic validation proceeds as follows:
+     *
+     *     - `{@link #allowBlank}` : (Invalid message = `{@link #emptyText}`)
+     *
+     *         Depending on the configuration of `{@link #allowBlank}`, a
+     *         blank field will cause validation to halt at this step and return
+     *         Boolean true or false accordingly.
+     *
+     *     - `{@link #minLength}` : (Invalid message = `{@link #minLengthText}`)
+     *
+     *         If the passed value does not satisfy the `{@link #minLength}`
+     *         specified, validation halts.
+     *
+     *     -  `{@link #maxLength}` : (Invalid message = `{@link #maxLengthText}`)
+     *
+     *         If the passed value does not satisfy the `{@link #maxLength}`
+     *         specified, validation halts.
+     *
+     * 3. **Preconfigured Validation Types (VTypes)**
+     *
+     *     If none of the prior validation steps halts validation, a field
+     *     configured with a `{@link #vtype}` will utilize the
+     *     corresponding {@link Ext.form.field.VTypes VTypes} validation function.
+     *     If invalid, either the field's `{@link #vtypeText}` or
+     *     the VTypes vtype Text property will be used for the invalid message.
+     *     Keystrokes on the field will be filtered according to the VTypes
+     *     vtype Mask property.
+     *
+     * 4. **Field specific regex test**
+     *
+     *     If none of the prior validation steps halts validation, a field's
+     *     configured &lt;code&gt;{@link #regex}&lt;/code&gt; test will be processed.
+     *     The invalid message for this test is configured with `{@link #regexText}`
+     *
+     * @param {Object} value The value to validate. The processed raw value will be used if nothing is passed.
+     * @return {String[]} Array of any validation errors
      */
     getErrors: function(value) {
         var me = this,
@@ -617,8 +620,8 @@ for any failing validations. Validation rules are processed in the following ord
 
 <span id='Ext-form-field-Text-method-selectText'>    /**
 </span>     * Selects text in this field
-     * @param {Number} start (optional) The index where the selection should start (defaults to 0)
-     * @param {Number} end (optional) The index where the selection should end (defaults to the text length)
+     * @param {Number} [start=0] The index where the selection should start
+     * @param {Number} [end] The index where the selection should end (defaults to the text length)
      */
     selectText : function(start, end){
         var me = this,
@@ -627,7 +630,7 @@ for any failing validations. Validation rules are processed in the following ord
             el = me.inputEl.dom,
             undef,
             range;
-            
+
         if (v.length &gt; 0) {
             start = start === undef ? 0 : start;
             end = end === undef ? v.length : end;
@@ -648,9 +651,8 @@ for any failing validations. Validation rules are processed in the following ord
     },
 
 <span id='Ext-form-field-Text-method-autoSize'>    /**
-</span>     * Automatically grows the field to accomodate the width of the text up to the maximum field width allowed.
-     * This only takes effect if &lt;tt&gt;{@link #grow} = true&lt;/tt&gt;, and fires the {@link #autosize} event if the
-     * width changes.
+</span>     * Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. This
+     * only takes effect if {@link #grow} = true, and fires the {@link #autosize} event if the width changes.
      */
     autoSize: function() {
         var me = this,
@@ -671,10 +673,10 @@ for any failing validations. Validation rules are processed in the following ord
     },
 
 <span id='Ext-form-field-Text-method-getBodyNaturalWidth'>    /**
-</span>     * @protected override
-     * To get the natural width of the inputEl, we do a simple calculation based on the
-     * 'size' config. We use hard-coded numbers to approximate what browsers do natively,
-     * to avoid having to read any styles which would hurt performance.
+</span>     * To get the natural width of the inputEl, we do a simple calculation based on the 'size' config. We use
+     * hard-coded numbers to approximate what browsers do natively, to avoid having to read any styles which would hurt
+     * performance. Overrides Labelable method.
+     * @protected
      */
     getBodyNaturalWidth: function() {
         return Math.round(this.size * 6.5) + 20;