From f8c31abad0fa0df3af7a3b89a902eca5d664bf22 Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Fri, 1 Feb 2019 19:44:06 +1100 Subject: [PATCH] MDL-53140 forms: Implement validateSubmitValue for the group element The group element needs to call validateSubmitValue() for all of its containing elements. --- lib/form/group.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/form/group.php b/lib/form/group.php index f4f241fd045..c8a3935d935 100644 --- a/lib/form/group.php +++ b/lib/form/group.php @@ -257,4 +257,22 @@ class MoodleQuickForm_group extends HTML_QuickForm_group implements templatable } $renderer->finishGroup($this); } + + /** + * Calls the validateSubmitValue function for the containing elements and returns an error string as soon as it finds one. + * + * @param array $values Values of the containing elements. + * @return string|null Validation error message or null. + */ + public function validateSubmitValue($values) { + foreach ($this->_elements as $element) { + if (method_exists($element, 'validateSubmitValue')) { + $value = $values[$element->getName()] ?? null; + $result = $element->validateSubmitValue($value); + if (!empty($result) && is_string($result)) { + return $result; + } + } + } + } } -- 2.43.0