Top

Name

error-summary — Placeholder for error messages.

Synopsis

<error-summary />( match (optional) ,
  debug-srcfile (optional) ,
  debug-srcline (optional) ,
  debug-log (optional) );
 

Description

Placeholder for form error messages. This is used on a form to mark where error messages resulting from field or form validation are to be placed. This will be rendered if the vc_is_valid member of the enclosing page is false. If rendered, this prints an error message generated by a validator or a catch handler. This control wiil not be instantiated. The error-summary may show errors for all controls or for a group of controls whose name matches a given regular expression. The vc_error_message members of all controls whose validation failed will be shown at the place marked by this control if attribute 'match' is not specified. Otherwise the vc_error_message of controls whose validation failed and 'name' matches the pattern specified will be shown.

Attributes

match.  This attribute specifies a regular expression to be matched against names of controls with failed validation. The expression may match more than one control name, concatenating the messages in document order of controls. In this way an error summary may appear in different places of the page to print errors for different controls.

debug-srcfile.  URI of the source document where the tag comes from.

debug-srcline.  Line number in the source document where the tag comes from.

debug-log.  This defines what sort of data are saved to the debugging log.

Examples

Example 14.30.  Validation of text area input

The form contains two v:textarea controls with v:validator elements inside. When the OK button is pressed data are posted back to the same URI so the page is instantiated again. If any validator found a violation the message is shown to the user in the place specified by v:error-summary element.

<v:page name="error_summary__0" xmlns:v="http://http://example.com/vspx/">
  <html>
    <head>
      <title>VSPX samples | v:error-summary</title>
    </head>
    <body>
      <v:error-summary />
      <v:form name="form1" type="simple" action="" method="POST">
        <v:textarea name="ta1" default="enter your first text here" value="--coalesce ({?'ta1'}, control.ufl_value)" error-glyph="*">
          <v:validator test="length" min="0" max="50" message="The length of the first input should not exceed 50 chars."/>
        </v:textarea>
        <v:textarea name="ta2" default="enter your second text here" value="--coalesce ({?'ta1'}, control.ufl_value)" error-glyph="*">
          <v:validator test="length" min="0" max="50" message="The length of the second input should not exceed 50 chars."/>
        </v:textarea>
        <v:button name="submit1" action="simple" value="OK"/>
      </v:form>
    </body>
  </html>
</v:page>

Example 14.31.  Validation of text area input with separate error summaries place

The form contains two v:textarea controls with v:validator elements inside. When the OK button is pressed data are posted back to the same URI so the page is instantiated again. If any validator found a violation the message is shown to the user in the place specified by v:error-summary element depending of a match attribute.

<v:page name="error_summary__0" xmlns:v="http://http://example.com/vspx/">
  <html>
    <head>
      <title>VSPX samples | v:error-summary</title>
    </head>
    <body>
      <v:error-summary match="ta1"/>
      <v:form name="form1" type="simple" action="" method="POST">
        <v:textarea name="ta1" default="enter your first text here" value="--coalesce ({?'ta1'}, control.ufl_value)" error-glyph="*">
          <v:validator test="length" min="0" max="50" message="The length of the first input should not exceed 50 chars."/>
        </v:textarea>
      <v:error-summary match="ta2"/>
        <v:textarea name="ta2" default="enter your second text here" value="--coalesce ({?'ta1'}, control.ufl_value)" error-glyph="*">
          <v:validator test="length" min="0" max="50" message="The length of the second input should not exceed 50 chars."/>
        </v:textarea>
        <v:button name="submit1" action="simple" value="OK"/>
      </v:form>
    </body>
  </html>
</v:page>