2.4.1.20 Text Box Control

The text box control allows the user to enter simple text in the form. The following table describes the symbols for the text box control.

Symbol

Description

SIMPLE_TEXT_BOX

The text box with no conditional formatting, multiple lines, placeholder text, or data formatting.

TEXT_BOX_WITH_CONDITIONAL_FORMATTING

The text box with conditional formatting.

SIMPLE_TEXT_BOX_MULTI_LINE

The text box that allows multiple lines input.

TEXT_BOX_MULTI_LINE_WITH_CONDITIONAL_FORMATTING

The text box with conditional formatting and multiple lines of input.

SIMPLE_TEXT_BOX_WITH_DATA_FORMATTING

The text box with data formatting.

TEXT_BOX_WITH_CONDITIONAL_FORMATTING_AND_DATA_FORMATTING

The text box with data formatting and conditional formatting.

SIMPLE_TEXT_BOX_WITH_PLACEHOLDER_TEXT

The text box with placeholder text. The placeholder text is ignored by the form server.

SIMPLE_TEXT_BOX_WITH_PLACEHOLER_TEXT_AND_DATA_FORMATTING

The text box with placeholder text and data formatting. The placeholder text is ignored by the form server.

TEXT_BOX_MULTI_LINE_PLACEHOLDER_TEXT

The text box that allows multiple lines input and has placeholder text. The placeholder text is ignored by the form server.

TEXT_BOX_MULTI_LINE_CONDITIONAL_FORMATTING_AND_PLACEHOLDER_TEXT

The text box that allows multiple lines input and has placeholder text with conditional formatting. The placeholder text is ignored by the form server.

TEXT_BOX_WITH_CONDITIONAL_FORMATTING_AND_PLACEHOLDER_TEXT

The text box that has placeholder text with conditional formatting. The placeholder text is ignored by the form server.

TEXT_BOX_WITH_CONDITIONAL_FORMATTING_AND_PLACEHOLDER_TEXT_AND_DATA_FORMATTING

The text box that has placeholder text with conditional formatting and data formatting. The placeholder text is ignored by the form server.

TEXT_BOX_EDITING: contentEditable="true" or xd:disableEditing="(yes|no)" or (contentEditable="true" xd:disableEditing="yes".

TEXT_BOX_AUTOADVANCE: xd:autoAdvance="yes".

WHITESPACE_NO_WRAP: WHITE-SPACE: nowrap.

TEXT_BOX_OUTPUT_ESC: disable-output-escaping="yes".

TEXT_BOX_STYLE: Semicolon-delimited list of (STYLE_SIZE?, STYLE_MARGIN?, STYLE_PADDING?, STYLE_TEXT_DECORATION?, STYLE_BACKGROUND_COLOR?, STYLE_BORDER?, STYLE_FONT?, STYLE_COLOR?, WHITESPACE_NO_WRAP?, STYLE_WIDTH?, STYLE_WRAP?, STYLE_TEXT_ALIGN?, (OVERFLOW-Y: auto; OVERFLOW-X: auto;)?, STYLE_VERTICAL_ALIGN?, STYLE_DIRECTION?).

TEXT_BOX_STYLE_CONDITIONAL_FORMATTING: Semicolon-delimited list of (STYLE_TEXT_DECORATION?, STYLE_BACKGROUND_COLOR?, STYLE_FONT?, STYLE_COLOR?, STYLE_TEXT_ALIGN?, STYLE_CAPTION).

TEXT_BOX_BASE_CLASS_NAME: xdTextBox or xdTextBoxRTL.

SIMPLE_TEXT_BOX:

 <span class="TEXT_BOX_BASE_CLASS_NAME" hideFocus="1" title="ANY_STRING" xd:binding="LEAF_XPATH1"
     tabIndex="TAB_INDEX"  xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? style="TEXT_BOX_STYLE" (TEXT_BOX_AUTOADVANCE)?
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     <xsl:value-of select="LEAF_XPATH1" TEXT_BOX_OUTPUT_ESC? />
     CHECK_FOR_GETDOM_END1
 </span>

TEXT_BOX_WITH_CONDITIONAL_FORMATTING:

 <span class="TEXT_BOX_BASE_CLASS_NAME" hideFocus="1" title="ANY_STRING" xd:binding="LEAF_XPATH1" (style="TEXT_BOX_STYLE")?
     tabIndex="TAB_INDEX" xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? (TEXT_BOX_AUTOADVANCE)?
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
         CHECK_FOR_GETDOM_BEGIN1
         TEXT_BOX_CONDITIONAL_FORMATTING
         <xsl:value-of select="LEAF_XPATH1" TEXT_BOX_OUTPUT_ESC? />
         CHECK_FOR_GETDOM_END1
 </span>
  

TEXT_BOX_CONDITIONAL_FORMATTING: TEXT_BOX_CONDITIONAL_FORMATTING_ATT (TEXT_BOX_CONDITIONAL_FORMATTING_CHOOSE)? or TEXT_BOX_CONDITIONAL_FORMATTING_CHOOSE.

TEXT_BOX_CONDITIONAL_FORMATTING_ATT:

 <xsl:attribute name="style">TEXT_BOX_STYLE<xsl:choose>
         (<xsl:when test="BOOLEAN_XPATH_EXPRESSION">STYLE_DISPLAY_NONE; STYLE_CAPTION</xsl:when>|
         <xsl:when test="BOOLEAN_XPATH_EXPRESSION">STYLE_CAPTION</xsl:when>|
         <xsl:when test="BOOLEAN_XPATH_EXPRESSION">TEXT_BOX_STYLE_CONDITIONAL_FORMATTING
         </xsl:when>)+
     </xsl:choose>
 </xsl:attribute>

TEXT_BOX_CONDITIONAL_FORMATTING_CHOOSE:

 <xsl:choose>
     (<xsl:when test="BOOLEAN_XPATH_EXPRESSION"/>|
     <xsl:when test="BOOLEAN_XPATH_EXPRESSION">
         <xsl:attribute name="contentEditable">false</xsl:attribute>
     </xsl:when>)+
 </xsl:choose>

SIMPLE_TEXT_BOX_MULTI_LINE:

 <span class="TEXT_BOX_BASE_CLASS_NAME" hideFocus="1" title="ANY_STRING" 
     xd:binding="LEAF_XPATH1" tabIndex="TAB_INDEX" (TEXT_BOX_AUTOADVANCE)?                   
     xd:datafmt="DATA_FMT_CAT_STRING" xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? TEXT_BOX_STYLE 
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     <xsl:choose>
         <xsl:when test="function-available('xdFormatting:formatString')">
             <xsl:value-of select="xdFormatting:formatString(LEAF_XPATH1, DATA_FMT_CAT_STRING)" TEXT_BOX_OUTPUT_ESC />
         </xsl:when>
         <xsl:otherwise>
             <xsl:value-of select="LEAF_XPATH1" TEXT_BOX_OUTPUT_ESC />
         </xsl:otherwise>
     </xsl:choose>
     CHECK_FOR_GETDOM_END1
 </span>

TEXT_BOX_MULTI_LINE_WITH_CONDITIONAL_FORMATTING:

 <span class="TEXT_BOX_BASE_CLASS_NAME" hideFocus="1" title="ANY_STRING" 
     xd:binding="LEAF_XPATH1"  tabIndex="TAB_INDEX" (style="TEXT_BOX_STYLE")?
     xd:datafmt="DATA_FMT_CAT_STRING" xd:xctname="PlainText" 
     xd:CtrlId="CONTROL_ID" (TEXT_BOX_EDITING)? (TEXT_BOX_AUTOADVANCE)?
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?> 
     CHECK_FOR_GETDOM_BEGIN1
     TEXT_BOX_CONDITIONAL_FORMATTING
     <xsl:choose>
         <xsl:when test="function-available('xdFormatting:formatString')">
             <xsl:value-of select="xdFormatting:formatString(LEAF_XPATH1, DATA_FMT_CAT_STRING)" TEXT_BOX_OUTPUT_ESC />
         </xsl:when>
         <xsl:otherwise>
             <xsl:value-of select="LEAF_XPATH1" TEXT_BOX_OUTPUT_ESC />
         </xsl:otherwise>
     </xsl:choose>
     CHECK_FOR_GETDOM_END1
 </span>

DATA_FMT_TEXT_BOX_VAL: xd:datafmt="DATA_FMT_CTRL_TEXTBOX1" DATA_FMT2_ATTRIBUTE_TEXT_BOX1.

DATA_FMT_XSL_BASE_TEXTBOX:

 DATA_FMT2_FUNCTION_TEXT_BOX1
 <xsl:when test="function-available('xdFormatting:formatString')">
     <xsl:value-of select="xdFormatting:formatString(LEAF_XPATH1, DATA_FMT_CTRL_TEXTBOX1)"/>
 </xsl:when>

DATA_FMT_XSL_NUM:

 <xsl:attribute name="xd:num">
     <xsl:value-of select="LEAF_XPATH1"/>
 </xsl:attribute>

DATA_FMT_XSL_TEXTBOX:

     DATA_FMT_XSL_NUM
     <xsl:choose>
         DATA_FMT_XSL_BASE_TEXTBOX 
         <xsl:otherwise>
             <xsl:value-of select="LEAF_XPATH1"/>
         </xsl:otherwise>  
     </xsl:choose>

SIMPLE_TEXT_BOX_WITH_DATA_FORMATTING:

 <span class="TEXT_BOX_BASE_CLASS_NAME xdBehavior_Formatting" hideFocus="1" title="ANY_STRING" xd:binding="LEAF_XPATH1" (TEXT_BOX_AUTOADVANCE)?
     tabIndex="TAB_INDEX" DATA_FMT_TEXT_BOX_VAL xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? style="TEXT_BOX_STYLE" xd:boundProp="xd:num"
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     DATA_FMT_XSL_TEXTBOX 
     CHECK_FOR_GETDOM_END1
 </span>

TEXT_BOX_WITH_CONDITIONAL_FORMATTING_AND_DATA_FORMATTING:

     <span class="TEXT_BOX_BASE_CLASS_NAME xdBehavior_Formatting" hideFocus="1"
     title="ANY_STRING" xd:binding="LEAF_XPATH1" xd:boundProp="xd:num"
     tabIndex="TAB_INDEX" DATA_FMT_TEXT_BOX_VAL xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? (TEXT_BOX_AUTOADVANCE)? (style="TEXT_BOX_STYLE")?
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     TEXT_BOX_CONDITIONAL_FORMATTING
     DATA_FMT_XSL_TEXTBOX
     CHECK_FOR_GETDOM_END1
 </span>

PLACEHOLDER_TEXT_XSL_BASE:

 <xsl:when test="not(string(LEAF_XPATH1))">
     <xsl:attribute name="xd:ghosted">true</xsl:attribute>ANY_STRING
 </xsl:when>

PLACEHOLDER_TEXT_XSL:

 <xsl:choose>
     PLACEHOLDER_TEXT_XSL_BASE
     <xsl:otherwise>
         <xsl:value-of select="LEAF_XPATH1" TEXT_BOX_OUTPUT_ESC? />
     </xsl:otherwise>
 </xsl:choose>

SIMPLE_TEXT_BOX_WITH_PLACEHOLDER_TEXT:

 <span class="TEXT_BOX_BASE_CLASS_NAME xdBehavior_GhostedText" hideFocus="1" title="ANY_STRING" xd:binding="LEAF_XPATH1" (TEXT_BOX_AUTOADVANCE)?
     tabIndex="TAB_INDEX"  xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? style="TEXT_BOX_STYLE" 
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     PLACEHOLDER_TEXT_XSL   
     CHECK_FOR_GETDOM_END1 
 </span>

SIMPLE_TEXT_BOX_WITH_PLACEHOLER_TEXT_AND_DATA_FORMATTING:

 <span class="TEXT_BOX_BASE_CLASS_NAME xdBehavior_GTFormatting" hideFocus="1"  
     title="ANY_STRING" xd:binding="LEAF_XPATH1" xd:boundProp="xd:num"
     tabIndex="TAB_INDEX" DATA_FMT_TEXT_BOX_VAL xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? style="TEXT_BOX_STYLE" (TEXT_BOX_AUTOADVANCE)?
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     DATA_FMT_XSL_NUM
     <xsl:choose>
         PLACEHOLDER_TEXT_XSL_BASE
         DATA_FMT_XSL_BASE_TEXTBOX
         <xsl:otherwise>
             <xsl:value-of select="LEAF_XPATH1"/>
         </xsl:otherwise>
     </xsl:choose> 
     CHECK_FOR_GETDOM_END1
 </span>

TEXT_BOX_MULTI_LINE_PLACEHOLDER_TEXT:

 <span class="TEXT_BOX_BASE_CLASS_NAME xdBehavior_GhostedText" hideFocus="1" title="ANY_STRING" 
     xd:binding="LEAF_XPATH1" tabIndex="TAB_INDEX"
     xd:datafmt="DATA_FMT_CAT_STRING" xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? TEXT_BOX_STYLE (TEXT_BOX_AUTOADVANCE)?
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     <xsl:choose>
         PLACEHOLDER_TEXT_XSL_BASE
         <xsl:when test="function-available('xdFormatting:formatString')">
             <xsl:value-of select="xdFormatting:formatString(LEAF_XPATH1, DATA_FMT_CAT_STRING)" TEXT_BOX_OUTPUT_ESC />
         </xsl:when>
         <xsl:otherwise>
             <xsl:value-of select="LEAF_XPATH1" TEXT_BOX_OUTPUT_ESC/>
         </xsl:otherwise>
     </xsl:choose>
     CHECK_FOR_GETDOM_END1
 </span>

TEXT_BOX_MULTI_LINE_CONDITIONAL_FORMATTING_AND_PLACEHOLDER_TEXT:

 <span class="TEXT_BOX_BASE_CLASS_NAME xdBehavior_GhostedText" hideFocus="1" title="ANY_STRING"
     xd:binding="LEAF_XPATH1" tabIndex="TAB_INDEX" 
        xd:datafmt="DATA_FMT_CAT_STRING" xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? TEXT_BOX_STYLE (TEXT_BOX_AUTOADVANCE)? 
     (style="TEXT_BOX_STYLE")?
     (xd:postbackModel="POSTBACKMODEL")? (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     TEXT_BOX_CONDITIONAL_FORMATTING
     <xsl:choose>
         PLACEHOLDER_TEXT_XSL_BASE
         <xsl:when test="function-available('xdFormatting:formatString')">
             <xsl:value-of select="xdFormatting:formatString(LEAF_XPATH1, DATA_FMT_CAT_STRING)" TEXT_BOX_OUTPUT_ESC />
         </xsl:when>
         <xsl:otherwise>
             <xsl:value-of select="LEAF_XPATH1" TEXT_BOX_OUTPUT_ESC />
         </xsl:otherwise>
     </xsl:choose>
     CHECK_FOR_GETDOM_END1
 </span>

TEXT_BOX_WITH_CONDITIONAL_FORMATTING_AND_PLACEHOLDER_TEXT:

 <span class="TEXT_BOX_BASE_CLASS_NAME xdBehavior_GhostedText" hideFocus="1" title="ANY_STRING" xd:binding="LEAF_XPATH1" (TEXT_BOX_AUTOADVANCE)? (style="TEXT_BOX_STYLE")?
     tabIndex="TAB_INDEX"  xd:xctname="PlainText" xd:CtrlId="CONTROL_ID" 
     (TEXT_BOX_EDITING)? (xd:postbackModel="POSTBACKMODEL")? 
     (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     TEXT_BOX_CONDITIONAL_FORMATTING
     PLACEHOLDER_TEXT_XSL   
     CHECK_FOR_GETDOM_END1 
 </span>

TEXT_BOX_WITH_CONDITIONAL_FORMATTING_AND_PLACEHOLDER_TEXT_AND_DATA_FORMATTING:

 <span class="TEXT_BOX_BASE_CLASS_NAME xdBehavior_GTFormatting" hideFocus="1"
     title="ANY_STRING" xd:binding="LEAF_XPATH1" DATA_FMT_TEXT_BOX_VAL xd:boundProp="xd:num"
 tabIndex="TAB_INDEX"  xd:xctname="PlainText" xd:CtrlId="CONTROL_ID"
     (style="TEXT_BOX_STYLE")?
     (TEXT_BOX_EDITING)? (xd:postbackModel="POSTBACKMODEL")? (TEXT_BOX_AUTOADVANCE)?
     (accessKey="SINGLE_CHARACTER")? (INPUT_SCOPE)?>
     CHECK_FOR_GETDOM_BEGIN1
     TEXT_BOX_CONDITIONAL_FORMATTING
     DATA_FMT_XSL_NUM
     <xsl:choose>
         PLACEHOLDER_TEXT_XSL_BASE
         DATA_FMT_XSL_BASE_TEXTBOX
         <xsl:otherwise>
             <xsl:value-of select="LEAF_XPATH1"/>
         </xsl:otherwise>
     </xsl:choose> 
     CHECK_FOR_GETDOM_END1
 </span>

DATA_FMT2_ATTRIBUTE_TEXT_BOX: (xd:datafmt2="DATA_FMT21")?

DATA_FMT2_FUNCTION_TEXT_BOX:

 (<xsl:when test="function-available('xdFormatting:formatString2')">
     <xsl:value-of select="xdFormatting:formatString2(LEAF_XPATH1, DATA_FMT_CTRL_TEXTBOX1, 'DATA_FMT21')" />
 </xsl:when>)?

DATA_FMT2_ATTRIBUTE_TEXT_BOX and DATA_FMT2_FUNCTION_TEXT_BOX symbols appear in pairs in the EBNF rules. Subscripts are used to mark the pairs.

If the yield of DATA_FMT2_ATTRIBUTE_TEXT_BOX in DATA_FMT_TEXT_BOX_VAL is empty, the yield of the pairing DATA_FMT2_FUNCTION_TEXT_BOX in DATA_FMT_XSL_BASE_TEXTBOX MUST be empty.

If the yield of DATA_FMT2_FUNCTION_TEXT_BOX in DATA_FMT_XSL_BASE_TEXTBOX is empty, the yield of the pairing DATA_FMT2_ATTRIBUTE_TEXT_BOX in DATA_FMT_TEXT_BOX_VAL MUST be empty.

The following table lists control-specific attributes used by the textbox control.

Attribute

Section

xd:allowNonMatching

2.4.2.2

xd:autoAdvance

2.4.2.3

xd:binding

2.4.2.6

xd:boundProp

2.4.2.9

xd:CtrlId

2.4.2.10

xd:datafmt

2.4.2.11

xd:datafmt2

2.4.2.37.4

xd:disableEditing

2.4.2.12

xd:ghosted

2.4.2.15

xd:inputScopeId

2.4.2.21

xd:num

2.4.2.26

xd:postbackModel

2.4.2.29

xd:xctname

2.4.2.35