From e50dd153056b9e7cbb9d17689b3bef5963d573f0 Mon Sep 17 00:00:00 2001 From: Filip Siderov Date: Thu, 18 Jul 2019 10:16:58 +0300 Subject: [PATCH 1/2] fix: enable form support for nested input elements --- .../src/features/InputElementsFormSupport.js | 14 ++++++----- .../webcomponents/main/pages/FormSupport.html | 24 +++++++++++++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) 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..5e02dc509891 100644 --- a/packages/main/test/sap/ui/webcomponents/main/pages/FormSupport.html +++ b/packages/main/test/sap/ui/webcomponents/main/pages/FormSupport.html @@ -35,6 +35,30 @@ +
+
+ + + + + + + + + + + + + + + + + Does not submit forms + + Submits forms +
+
+ From 404d86c2fa3be550379f0f3ae942ebc5ca7efb8d Mon Sep 17 00:00:00 2001 From: Filip Siderov Date: Mon, 22 Jul 2019 15:29:02 +0300 Subject: [PATCH 2/2] fix failing test --- .../webcomponents/main/pages/FormSupport.html | 26 +------------------ packages/main/test/specs/FormSupport.spec.js | 4 +-- 2 files changed, 3 insertions(+), 27 deletions(-) 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 5e02dc509891..ceab6d442f03 100644 --- a/packages/main/test/sap/ui/webcomponents/main/pages/FormSupport.html +++ b/packages/main/test/sap/ui/webcomponents/main/pages/FormSupport.html @@ -35,30 +35,6 @@ -
-
- - - - - - - - - - - - - - - - - Does not submit forms - - Submits forms -
-
- - + \ 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