HTML_QuickForm::addFormRule() – Adds a global validation rule


require_once 'HTML/QuickForm.php';

void HTML_QuickForm::addFormRule ( mixed $rule )


This should be used when you want to add a rule involving several fields or if you want to use some completely custom validation for your form. The rule function/method should return TRUE in case of successful validation and array('element name' => 'error') when there were errors.


mixed $rule

A valid callback


Possible PEAR_Error values
Error code Error message Reason Solution
QUICKFORM_INVALID_RULE Callback function does not exist in HTML_QuickForm::addFormRule() Tried to pass a name of a non-existant function as a callback Check spelling


since 3.1

This function can not be called statically.


Using addFormRule()

require_once ('HTML/QuickForm.php');

$form = new HTML_QuickForm();

// the function checks whether the passwords are the same
function cmpPass($fields)
    if (
strlen($fields['passwd1']) && strlen($fields['passwd2']) &&
$fields['passwd1'] != $fields['passwd2']) {
        return array(
'passwd1' => 'Passwords are not the same');

$form->addElement('password''passwd1''Enter password');
$form->addElement('password''passwd2''Confirm password');

Adds a validation rule for the given group (Previous) Returns whether the form element is required (Next)
Last updated: Sat, 16 Feb 2019 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report.
View this page in:
  • English

User Notes:

Note by:
If your validation callback returns an empty Array(), this will cause your form validation to fail without setting element errors in the process.

This is not necessarily useless behavior, but be aware.
Note by:
How do I get the error to show in the javascript?