MDL-65217 form: option to randomise element ids

This commit is contained in:
Marina Glancy
2019-04-29 14:23:27 +02:00
parent 521989ec56
commit f82c9d8d06
2 changed files with 6 additions and 0 deletions
+2
View File
@@ -163,6 +163,8 @@ abstract class moodleform {
* @param string $target target frame for form submission. You will rarely use this. Don't use
* it if you don't need to as the target attribute is deprecated in xhtml strict.
* @param mixed $attributes you can pass a string of html attributes here or an array.
* Special attribute 'data-random-ids' will randomise generated elements ids. This
* is necessary when there are several forms on the same page.
* @param bool $editable
* @param array $ajaxformdata Forms submitted via ajax, must pass their data here, instead of relying on _GET and _POST.
*/
+4
View File
@@ -384,6 +384,10 @@ class HTML_QuickForm_element extends HTML_Common
switch ($event) {
case 'createElement':
static::__construct($arg[0], $arg[1], $arg[2], $arg[3], $arg[4]);
if ($caller->getAttribute('data-random-ids') && !$this->getAttribute('id')) {
$this->_generateId();
$this->updateAttributes(array('id' => $this->getAttribute('id') . '_' . random_string()));
}
break;
case 'addElement':
$this->onQuickFormEvent('createElement', $arg, $caller);