diff --git a/core/includes/form.inc b/core/includes/form.inc index 84921ed..c6974c4 100644 --- a/core/includes/form.inc +++ b/core/includes/form.inc @@ -4034,12 +4034,20 @@ function form_validate_number(&$element, &$form_state) { /** * Form element validation handler for #type 'range'. * - * Make sure range elements always have a value. Default to 0. #required is not - * supported for range elements. + * Make sure range elements always have a value. Default to 0. The 'required' + * attribute is not allowed for range elements. */ function form_validate_range(&$element, &$form_state) { if ($element['#value'] === '') { - form_set_value($element, 0.0, $form_state); + $default_value = ($element['#min'] + $element['#max']) / 2; + + // Round the default value to the step. + if (strtolower($element['#step']) != 'any') { + $steps = round($default_value / $element['#step']); + $default_value = $element['#step'] * $steps; + } + + form_set_value($element, $default_value, $form_state); } }