diff --git a/lib/pear/HTML/QuickForm.php b/lib/pear/HTML/QuickForm.php
index 0f566f2db55..60d7ce60cdf 100644
--- a/lib/pear/HTML/QuickForm.php
+++ b/lib/pear/HTML/QuickForm.php
@@ -1571,15 +1571,16 @@ class HTML_QuickForm extends HTML_Common {
$elementList = array_flip($elementList);
}
+ $frozen = [];
foreach (array_keys($this->_elements) as $key) {
$name = $this->_elements[$key]->getName();
if ($this->_freezeAll || isset($elementList[$name])) {
$this->_elements[$key]->freeze();
- unset($elementList[$name]);
+ $frozen[$name] = true;
}
}
- if (!empty($elementList)) {
+ if (count($elementList) != count($frozen)) {
return self::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Nonexistant element(s): '" . implode("', '", array_keys($elementList)) . "' in HTML_QuickForm::freeze()", 'HTML_QuickForm_Error', true);
}
return true;
diff --git a/lib/pear/readme_moodle.txt b/lib/pear/readme_moodle.txt
index 827f650e652..0e4f33fc404 100644
--- a/lib/pear/readme_moodle.txt
+++ b/lib/pear/readme_moodle.txt
@@ -39,6 +39,7 @@ MDL-78145 - PHP 8.2 compliance. Added a missing class property that still need t
to avoid dynamic properties deprecated error warning.
And also remove the $_elementIdx because it is not needed in Moodle code.
MDL-78527 - Adding a sixth parameter to allow groups to use attributes.
+MDL-80818 - Freezing all elements with the same name (e.g. radio buttons)
Pear
====