diff --git a/packages/main/src/features/InputElementsFormSupport.js b/packages/main/src/features/InputElementsFormSupport.js index 51ed811b6d3f..6d2921a03fa0 100644 --- a/packages/main/src/features/InputElementsFormSupport.js +++ b/packages/main/src/features/InputElementsFormSupport.js @@ -30,12 +30,14 @@ class FormSupport { if (!element.submits) { return; } - let parentElement; - do { - parentElement = element.parentElement; - } while (parentElement && parentElement.tagName.toLowerCase() !== "form"); - if (parentElement) { - parentElement.submit(); + let currentElement = element.parentElement; + while (currentElement && currentElement.tagName.toLowerCase() !== "form") { + currentElement = currentElement.parentElement; + } + if (currentElement) { + currentElement.submit(); + } else { + console.error(`${element} is not within a form. Please add it in a form.`); // eslint-disable-line } } } diff --git a/packages/main/test/sap/ui/webcomponents/main/pages/FormSupport.html b/packages/main/test/sap/ui/webcomponents/main/pages/FormSupport.html index 316e8e097d91..ceab6d442f03 100644 --- a/packages/main/test/sap/ui/webcomponents/main/pages/FormSupport.html +++ b/packages/main/test/sap/ui/webcomponents/main/pages/FormSupport.html @@ -37,4 +37,4 @@ - + \ No newline at end of file diff --git a/packages/main/test/specs/FormSupport.spec.js b/packages/main/test/specs/FormSupport.spec.js index 188511ec2475..3784157e8666 100644 --- a/packages/main/test/specs/FormSupport.spec.js +++ b/packages/main/test/specs/FormSupport.spec.js @@ -21,10 +21,10 @@ describe("Form support", () => { submitButton.click(); const formWasSubmitted = browser.execute(() => { - const expectedFormData = "FormSupport.html?input=ok&ta=ok&dp=Apr+10%2C+2019&cb=on&radio=b"; + const expectedFormData = "?input=ok&ta=ok&dp=Apr+10%2C+2019&cb=on&radio=b"; return location.href.endsWith(expectedFormData); }); assert.ok(formWasSubmitted, "For was submitted and URL changed"); }); -}); +}); \ No newline at end of file