You are here

function clientside_validation_form_after_build_recurse in Clientside Validation 7

Same name and namespace in other branches
  1. 8.2 clientside_validation.module \clientside_validation_form_after_build_recurse()
  2. 8 clientside_validation.module \clientside_validation_form_after_build_recurse()
  3. 6 clientside_validation_form/clientside_validation_form.module \clientside_validation_form_after_build_recurse()
  4. 7.2 clientside_validation.module \clientside_validation_form_after_build_recurse()
  5. 3.0.x clientside_validation.module \clientside_validation_form_after_build_recurse()
  6. 2.0.x clientside_validation.module \clientside_validation_form_after_build_recurse()
1 call to clientside_validation_form_after_build_recurse()
clientside_validation_form_clientside_validation_form_alter in clientside_validation_form/clientside_validation_form.module
Implements hook_clientside_validation_form_alter().

File

clientside_validation_form/clientside_validation_form.module, line 14
Add clientside validation to regular forms

Code

function clientside_validation_form_after_build_recurse($form_id, &$form, &$form_state, &$js_rules) {
  if ($children = array_values(element_children($form))) {
    foreach ($children as $index => $item) {
      $element =& $form[$item];
      if (isset($element['#type'])) {
        clientside_validation_regular($form_id, $element, $js_rules, $form_state);
        if ($element['#type'] == 'submit' && isset($element['#limit_validation_errors']) && empty($element['#limit_validation_errors']) && $element['#limit_validation_errors'] !== FALSE) {
          $element['#attributes']['class'][] = 'cancel';
        }
      }
      if (isset($element['#element_validate']) && !empty($element['#element_validate'])) {
        $context = array(
          'type' => 'element_validate',
          'functions' => $element['#element_validate'],
        );
        drupal_alter('clientside_validation_rule', $js_rules, $element, $context);
      }
      if (isset($element['#validate']) && !empty($element['#validate'])) {
        $context = array(
          'type' => 'form_validate',
          'functions' => $element['#validate'],
        );
        drupal_alter('clientside_validation_rule', $js_rules, $element, $context);
      }
      clientside_validation_form_after_build_recurse($form_id, $element, $form_state, $js_rules);
    }
  }
  if (isset($form['#validate']) && !empty($form['#validate'])) {
    $context = array(
      'type' => 'form_validate',
      'functions' => $form['#validate'],
    );
    drupal_alter('clientside_validation_rule', $js_rules, $form, $context);
  }
}