You are here

function _webform_edit_number_validate in Webform 7.4

Same name and namespace in other branches
  1. 6.3 components/number.inc \_webform_edit_number_validate()
  2. 7.3 components/number.inc \_webform_edit_number_validate()

Validation of number edit form items.

1 string reference to '_webform_edit_number_validate'
_webform_edit_number in components/number.inc
Implements _webform_edit_component().

File

components/number.inc, line 703
Webform module number component.

Code

function _webform_edit_number_validate($element, &$form_state) {

  // Find the value of all related fields to this element.
  $parents = $element['#parents'];
  $key = array_pop($parents);
  $values = $form_state['values'];
  foreach ($parents as $parent) {
    $values = $values[$parent];
  }
  switch ($key) {
    case 'min':
      if ($values['min'] == '') {
        if (isset($values['type']) && $values['type'] === 'select') {
          form_error($element, t('Minimum is required when using a select list element.'));
        }
      }
      else {
        if (!is_numeric($values['min'])) {
          form_error($element, t('Minimum must be numeric.'));
        }
        if ($values['integer'] && filter_var((double) $values['min'], FILTER_VALIDATE_INT) === FALSE) {
          form_error($element, t('Minimum must have an integer value.'));
        }
      }
      break;
    case 'max':
      if ($values['max'] == '') {
        if (isset($values['type']) && $values['type'] === 'select') {
          form_error($element, t('Maximum is required when using a select list element.'));
        }
      }
      else {
        if (!is_numeric($values['max'])) {
          form_error($element, t('Maximum must be numeric.'));
        }
        if ($values['integer'] && filter_var((double) $values['max'], FILTER_VALIDATE_INT) === FALSE) {
          form_error($element, t('Maximum must have an integer value.'));
        }
      }
      break;
    case 'step':
      if ($values['step'] !== '') {
        if (!is_numeric($values['step'])) {
          form_error($element, t('Step must be numeric.'));
        }
        else {
          if ($values['integer'] && filter_var((double) $values['step'], FILTER_VALIDATE_INT) === FALSE) {
            form_error($element, t('Step must have an integer value.'));
          }
        }
      }
      break;
  }
  return TRUE;
}