PEAR Manual
Prev |  | Next

# HTML_QuickForm::addRule()

HTML_QuickForm::addRule() -- Adds a validation rule for the given field

## Synopsis

    require_once 'HTML/QuickForm.php';

``void HTML_QuickForm::addRule` (mixed $element, string $message, string $type [, string $format = '' [, string $validation = 'server' [, boolean $reset = `FALSE` [, boolean $force = `FALSE`]]]])`

## Description

If the element is in fact a group, it will be considered as a whole, an array of group elements' values will be passed to validation function. To validate grouped elements as separate entities, use addGroupRule().

## Parameter

mixed `$element`

  Form element name(s). Currently the only builtin rule that expects and correctly handles an array here is `compare`:

      $form->addElement('password', 'cmpPasswd', 'Password:');
      $form->addElement('password', 'cmpRepeat', 'Repeat password:');
      $form->addRule(array('cmpPasswd', 'cmpRepeat'), 'The passwords do not match', 'compare', null, 'client');

  All other builtin rules will only handle a single element name.
string `$message`

  Message to display for invalid data

string `$type`

  Rule type, use getRegisteredRules() to get types. You can also pass a classname for a descendant of HTML_QuickForm_Rule or an instance of such class.

string `$format`

  (optional) Required for extra rule data

string `$validation`

  (optional) Where to perform validation: "server", "client"

boolean `$reset`

  For client-side validation: reset the form element to it's original value if there is an error?

boolean `$force`

  Force the rule to be applied, even if the target form element does not exist

## Throws

Table 41-1. Possible PEAR_Error values

Error code | Error message | Reason | Solution
--- | --- | --- | ---
`QUICKFORM_NONEXIST_ELEMENT` | Element '`$element`' does not exist in HTML_QuickForm::addRule() | Tried to add a rule for a non-existant element | Check the element's name spelling or use `$force` to suppress the error.
`QUICKFORM_INVALID_RULE` | Rule '`$type`' is not registered in HTML_QuickForm::addRule() | Rule is not known to QuickForm | Check rule type spelling or use HTML_QuickForm::registerRule().

## Note

since 1.0

This function can not be called statically.

Prev | Home | Next
Introduction - validation and filters | Up | HTML_QuickForm::addGroupRule()