diff --git a/includes/form.inc b/includes/form.inc index 1ba20a14d5409297557efe4882e49872384ddcef..62579848b820188657b7fab6b3707005522cf52f 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -664,10 +664,10 @@ function _form_validate($elements, &$form_state, $form_id = NULL) { // Validate the current input. if (!isset($elements['#validated']) || !$elements['#validated']) { if (isset($elements['#needs_validation'])) { - // An empty textfield returns '' so we use empty(). An empty checkbox - // and a textfield could return '0' and empty('0') returns TRUE so we - // need a special check for the '0' string. - if ($elements['#required'] && empty($elements['#value']) && $elements['#value'] !== '0') { + // We only check for trimmed string length being zero. 0 might be + // a possible value with some field types, such as radio buttons, so + // empty() is not usable here. + if ($elements['#required'] && strlen(trim($elements['#value'])) == 0) { form_error($elements, $t('!name field is required.', array('!name' => $elements['#title']))); }