Skip to content

XIN Rules

Stella Lee edited this page Aug 25, 2016 · 12 revisions

XIN Rules validate your input and prevent you from moving forward if you forget to fill in a required field. (i.e. If A1 is selected in question A and if A2 is selected in question B, then give examiner a break and skip question 3 and 4.)

All elements are required if no rule is specified.

$this->XINRegisterRule( "field_name1", array("field_name2{@}=={@}yes|maybe|sure"), "Required." );

  1. Field is always required (Always required by default, unless part of a group) $this->XINRegisterRule( "field_name", // field name on which the rule is applied array("field_name{@}=={@}"), // rule "Required.", // message "group_1" // group [if field is a part of a group] );

NOTE When adding XIN rules some elements are implicitly added to a group in NDB_BVL_Instrument.class.inc. In consequence, a group name needs to be specified when registering a rule. A group name is necessary for the following elements: $this->addHourMinElement(); // Group name: {$fieldName}_group $this->addTextElement(); // Group name: {$fieldName}_group $this->addNumericElement(); // Group name:{$fieldName}_group $this->addDateElement(); // Group name: {$fieldName}_dategroup 2. Field is never required $this->XINRegisterRule( "field_name", array("field_name{@}=={@}NEVER_REQUIRED"), "Not required", "group1" );

  1. Field is required based on value of another field (check for equality) $this->XINRegisterRule( "field_name1", array("field_name2{@}=={@}yes"), "Required." );

  2. Field is required based on value of another field (check for equality with multiple valid values) $this->XINRegisterRule( "field_name1", array("field_name2{@}=={@}yes|maybe|sure"), "Required." );

  3. Multiple rules applied in AND fashion $this->XINRegisterRule( "field_name3", array("field_name1{@}=={@}yes", "field_name2{@}=={@}no"), // Use , (comma) to "AND" the rules "Required." );

  4. Multiple rules applied in OR fashion $this->XINRegisterRule( "field_name3", array("field_name1{@}=={@}yes|field_name2{@}=={@}yes"), // Use | (pipe) to "OR" the rules "Required.", "group1" );

Clone this wiki locally