From b285fa67e4d35098479bb9b640b7f6969f2fddf5 Mon Sep 17 00:00:00 2001 From: Fedir Zinchuk Date: Thu, 30 Mar 2023 22:00:22 +0300 Subject: [PATCH] Fix validator compatibility break (#40230) --- .../media_source/system/js/fields/validate.es6.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/build/media_source/system/js/fields/validate.es6.js b/build/media_source/system/js/fields/validate.es6.js index 2a98c1b76fa33..5412dc52bd15f 100644 --- a/build/media_source/system/js/fields/validate.es6.js +++ b/build/media_source/system/js/fields/validate.es6.js @@ -249,10 +249,15 @@ class JFormValidator { let valid = true; let message; let error; + let fields; const invalid = []; // Validate form fields - const fields = [].slice.call(form.elements); + if (form.nodeName === 'FORM') { + fields = [].slice.call(form.elements); + } else { + fields = [].slice.call(form.querySelectorAll('input, textarea, select, button, fieldset')); + } fields.forEach((field) => { if (this.validate(field) === false) { valid = false; @@ -284,7 +289,13 @@ class JFormValidator { attachToForm(form) { const inputFields = []; - const elements = [].slice.call(form.elements); + let elements; + + if (form.nodeName === 'FORM') { + elements = [].slice.call(form.elements); + } else { + elements = [].slice.call(form.querySelectorAll('input, textarea, select, button, fieldset')); + } // Iterate through the form object and attach the validate method to all input fields. elements.forEach((element) => {