function number_field_widget_validate
number_field_widget_validate($element, &$form_state)
FAPI validation of an individual number element.
File
- modules/field/modules/number/number.module, line 370
- Defines numeric field types.
Code
function number_field_widget_validate($element, &$form_state) { $field = field_widget_field($element, $form_state); $instance = field_widget_instance($element, $form_state); $type = $element['#number_type']; $value = $element['#value']; // Reject invalid characters. if (!empty($value)) { switch ($type) { case 'float': case 'decimal': $regexp = '@([^-0-9\\' . $field['settings']['decimal_separator'] . '])|(.-)@'; $message = t('Only numbers and the decimal separator (@separator) allowed in %field.', array('%field' => $instance['label'], '@separator' => $field['settings']['decimal_separator'])); break; case 'integer': $regexp = '@([^-0-9])|(.-)@'; $message = t('Only numbers are allowed in %field.', array('%field' => $instance['label'])); break; } if ($value != preg_replace($regexp, '', $value)) { form_error($element, $message); } else { if ($type == 'decimal' || $type == 'float') { // Verify that only one decimal separator exists in the field. if (substr_count($value, $field['settings']['decimal_separator']) > 1) { $message = t('%field: There should only be one decimal separator (@separator).', array( '%field' => t($instance['label']), '@separator' => $field['settings']['decimal_separator'], ) ); form_error($element, $message); } else { // Substitute the decimal separator; things should be fine. $value = strtr($value, $field['settings']['decimal_separator'], '.'); } } form_set_value($element, $value, $form_state); } } }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!field!modules!number!number.module/function/number_field_widget_validate/7.x