Occurs after changes to a form's underlying XML document have been made but before the changes are accepted.
Function node::OnBeforeChange(ByRef pDataDOMEvent As DataDOMEvent)
pDataDOMEvent Required DataDOMEvent. A reference to the DataDOMEvent object.
This event handler allows users to cancel an operation.
During the OnBeforeChange event, the form's underlying XML document is placed in read-only mode. If the ReturnStatus property of the DataDOMEvent object is set to False, Microsoft Office InfoPath 2003 rejects the changes that were made and a message box is displayed to the user. If an error occurs in the scripting code for the OnBeforeChange event handler, InfoPath rejects the changes and restores the data to its previous state.
Notes
try-catch
block in the OnLoad event can be used to catch this validation failure and to load the document despite the error.
In the following example from the Events developer sample form, the OnBeforeChange event handler is used to validate the data in a field. If the data is not valid, the ReturnStatus property of the DataDOMEvent object is used to reject the changes.
function msoxd__RepVisitDt::OnBeforeChange(eventObj)
{
var oNode = XDocument.DOM.selectSingleNode
("/Customers/CustomerInfo/ContactDates/PhoneContactDt");
if (!oNode.text)
{
eventObj.ReturnMessage = "The Phone Contact Start date must be
set prior to the Representative Visit date.";
eventObj.ReturnStatus = false;
return;
}
// If the data is valid, eventObj.ReturnStatus = true.
eventObj.ReturnStatus = true;
return;
}