From 463ffe24ece31fd094ca30ce8b8b485ee32161cf Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Mon, 21 Nov 2005 16:21:51 +0000
Subject: [PATCH] - Patch #35724 by asimmonds: fixed handling of empty form
 fields.

---
 includes/form.inc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/includes/form.inc b/includes/form.inc
index e5bfd61d9a38..e7fbb4751f49 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -140,8 +140,10 @@ function _form_validate($elements) {
 
   /* Validate the current input */
   if (!$elements['#validated'] && $elements['#input']) {
-    if ($elements['#required'] && !isset($elements['#value'])) {
-        form_error($elements, t('%name field is required', array('%name' => $elements['#title'])));
+    // An empty checkbox returns 0, an empty textfield returns '' so we use empty().
+    // Unfortunately, empty('0') returns TRUE so we need a special check for the '0' string.
+    if ($elements['#required'] && empty($elements['#value']) && $elements['#value'] !== '0') {
+      form_error($elements, t('%name field is required', array('%name' => $elements['#title'])));
     }
     if ($elements['#valid']) {
       if (is_array($elements['#valid'])) {
-- 
GitLab