Skip to content

Commit f36c69b

Browse files
committed
fix(pat auto submit): Fix cloned elements not submitted when their input changes.
1 parent 4e01741 commit f36c69b

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/pat/auto-submit/auto-submit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export default Base.extend({
4949
);
5050
} else if (data?.pattern === "clone") {
5151
// Refresh listeners on cloning.
52-
this.refreshListeners(e, null, null, data.$el);
52+
this.refreshListeners(e, null, null, data.dom);
5353
}
5454
});
5555
},

src/pat/auto-submit/auto-submit.test.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,34 @@ describe("pat-autosubmit", function () {
8888
expect(spy).toHaveBeenCalled();
8989
});
9090

91+
it("2.2 - when pat-clone'd input is changed", async function () {
92+
const pattern_clone = (await import("../clone/clone")).default;
93+
document.body.innerHTML = `
94+
<form class="pat-autosubmit pat-clone"
95+
data-pat-autosubmit="delay: 0"
96+
data-pat-clone="template: #template">
97+
<button type="button" class="add-clone">clone</button>
98+
</form>
99+
<template id="template">
100+
<input name="test-input"></div>
101+
</template>
102+
`;
103+
const el = document.querySelector(".pat-autosubmit");
104+
const el_clone = document.querySelector(".pat-clone");
105+
const button_clone = document.querySelector(".add-clone");
106+
107+
const instance = new Pattern(el);
108+
new pattern_clone(el_clone);
109+
110+
const spy = jest.spyOn(instance.$el, "submit");
111+
112+
button_clone.click();
113+
114+
document.querySelector("form input").dispatchEvent(events.input_event());
115+
116+
expect(spy).toHaveBeenCalled();
117+
});
118+
91119
it("when pat-clone removes an element", function () {
92120
document.body.innerHTML = `
93121
<form class="pat-autosubmit">

0 commit comments

Comments
 (0)