How to create a custom validation error message that contains the name of the control that is being validated in InfoPath

Article translations Article translations
Article ID: 822032 - View products that this article applies to.
Expand all | Collapse all

On This Page

SUMMARY

Microsoft Office InfoPath can automatically check the data that you enter in a form. InfoPath displays an error message if the value of the data does not match the condition that is specified by the data validation rule. The error message can appear in either of the following ways:
  • Dialog box error message: This is a data validation error message that opens a dialog box that displays a custom error message when data that is not valid is entered in a control.
  • Inline error message: This is a data validation error message that is available from the control. InfoPath marks a control with a dashed red border when that control contains data that is not valid. To view the inline error message from the control, the user right-clicks the control or hovers the pointer over the control to see the error message as a screen tip.
This article provides an example of how to create an inline error message from the user interface or from a script. This sample form you create will mark the "Age" text box control when the user-supplied value is less than 30 or more than 65. This inline message for this error will contain the name of the control.

Design the Form

In InfoPath 2010

  1. Start InfoPath.
  2. Create a new form.
  3. In the Fields task pane, right-click myFields , and then click Add .
  4. In the Add Field or Group dialog box, type Age in the Name text box.
  5. In the Data Type list, select Whole Number (integer), and then click OK .
  6. Move the Age field to the form.

In InfoPath 2003 or InfoPath 2007

  1. Start InfoPath. Create a new form.
  2. In the Design Tasks task pane, click Data Source to open the Data Source task pane.
  3. In the Data Source task pane, right-click myFields, and then click Add. In the Add Field or Group dialog box, type Age in the Name text box. In the Data Type list, select Whole Number (integer), and then click OK.
  4. Move the Age field to the form.

Add Data Validation by Using the User Interface

In InfoPath 2010

  1. Click to select the Age text box control.
  2. On the Home tab, click Add Rule, click Is Not Between, and then click Show Validation Error.
  3. In the ScreenTip text box of the Rules pane, type The value of the Age field must be greater than 30 and less than 65.

In InfoPath 2003 or InfoPath 2007

  1. Right-click the Age text box control, and then click Text Box Properties. In the Text Box Properties dialog box, click Data Validation.
  2. In the Data Validation (Age) dialog box, click Add.
  3. In the condition operator drop-down list, select is less than.
  4. In the condition value drop-down list, select Type a number, and then type 30.
  5. Click And.
  6. Change the new drop-down list box from And to Or.
  7. In the second condition operator drop-down list, select is greater than.
  8. In second condition value drop-down list, select Type a number, and then type 65.
  9. In the ScreenTip text box, type The value of the Age field must be greater than 30 and less than 65.
  10. Click OK three times to dismiss all the dialog boxes.

Add Data Validation by Using a Script

In InfoPath 2003, you can use a script for data validation.
  1. Right-click the Age text box control, and then click Text Box Properties. In the Text Box Properties dialog box, click Data Validation.
  2. In the Data Validation (Age) dialog box, select OnValidate from the Events list, and then click Edit.

    Microsoft Script Editor starts.
  3. Add the following code to the OnValidate event for the Age field:
    function msoxd_my_Age::OnValidate(eventObj)
    {
    	// Clear any previous errors for this node.
    	XDocument.Errors.Delete(eventObj.Site,"InvalidValue");
    	
    	//Set the valAge variable to the value that is entered in the Age field.
    	var valAge = parseInt(eventObj.Site.text);
    	
    	//If the value that is entered in the Age field is less than 30 or 
    	//greater than 65, add a passive error to the collection of the error.
    	if ((valAge < 30) || (valAge > 65))
    	{
    		XDocument.Errors.Add(eventObj.Site,"InvalidValue","The value of the "
    		 + eventObj.Site.baseName + " field must be greater than 30 and less than 65.");
    	
    	}
    
    }
  4. Save the changes. Close Script Editor.
  5. Click OK to close the Data Validation (Age) dialog box, and then click OK to close the Text Box Properties dialog box.

Test the Form

  1. On the toolbar, click Preview Form.
  2. In the Age field, type 29, and then click outside the field.

    Notice the dashed red border that highlights the control. This indicates that the value is not valid.
  3. Move the pointer over the control.

    Notice that the screen tip displays the custom error message. The error message includes the name of the control that contains the data that is not valid.

Properties

Article ID: 822032 - Last Review: September 17, 2011 - Revision: 4.0
APPLIES TO
  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003
Keywords: 
kbhowtomaster kbhowto KB822032

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com