You are here

public function CvCoreRequiredValidator::setDataAttributes in Clientside Validation 7.2

Overrides ClientsideValidationValidator::setDataAttributes

File

plugins/validator/required.inc, line 61

Class

CvCoreRequiredValidator

Code

public function setDataAttributes(array &$element, array &$form_state) {
  if ($element['#type'] == 'checkboxes') {
    $js_settings = $this
      ->getJavascriptSettings($element, $form_state);
    foreach (array_keys($element['#options']) as $child) {
      $name = $this
        ->getName($element[$child]);
      foreach ($js_settings['rules'][$name] as $rulename => $rulearg) {
        $element[$child]['#attributes']['data-rule' . drupal_ucfirst(drupal_strtolower($rulename))] = drupal_json_encode($rulearg);
        $element[$child]['#attributes']['data-msg' . drupal_ucfirst(drupal_strtolower($rulename))] = $js_settings['messages'][$name][$rulename];
      }
    }
  }
  elseif ($element['#type'] == 'radios') {
    $js_settings = $this
      ->getJavascriptSettings($element, $form_state);
    $name = $this
      ->getName($element);
    foreach (array_keys($element['#options']) as $child) {
      foreach ($js_settings['rules'][$name] as $rulename => $rulearg) {
        $element[$child]['#attributes']['data-rule' . drupal_ucfirst(drupal_strtolower($rulename))] = drupal_json_encode($rulearg);
        $element[$child]['#attributes']['data-msg' . drupal_ucfirst(drupal_strtolower($rulename))] = $js_settings['messages'][$name][$rulename];
      }
    }
  }
  else {
    parent::setDataAttributes($element, $form_state);
  }
}