From 2c2bb6f065a13be0e552c8af0f9376df7d49168e Mon Sep 17 00:00:00 2001 From: Philipp-Andre Plogmann Date: Thu, 5 Apr 2018 23:00:47 +0200 Subject: [PATCH 1/2] listen for dom-change event to track dynamically added elements by dom-if dom-repeat for form reset. --- iron-form.html | 1 + test/basic.html | 27 +++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/iron-form.html b/iron-form.html index c31d669..610aaef 100644 --- a/iron-form.html +++ b/iron-form.html @@ -224,6 +224,7 @@ _init: function() { this._form.addEventListener('submit', this.submit.bind(this)); this._form.addEventListener('reset', this.reset.bind(this)); + this.addEventListener("dom-change", this._saveInitialValues.bind(this)); // Save the initial values. this._defaults = this._defaults || new WeakMap(); diff --git a/test/basic.html b/test/basic.html index f2a06f4..cfca08d 100644 --- a/test/basic.html +++ b/test/basic.html @@ -241,6 +241,11 @@ + + + @@ -255,6 +260,12 @@ + + + + @@ -907,15 +918,23 @@ } document.getElementById('repeat').items = ['item']; + Polymer.Base.async(function() { document.getElementById('paper_0').value = 'input1++'; + document.getElementById('if').if = true; - form.reset(); - - expect(document.getElementById('paper_0').value).to.be.equal('input'); - done(); + Polymer.Base.async(function() { + + document.getElementById('dynamic_if').value = 'input1++'; + + form.reset(); + + expect(document.getElementById('paper_0').value).to.be.equal('input'); + expect(document.getElementById('dynamic_if').value).to.be.equal('dynamic field'); + done(); + }, 0); }, 1); }); From 10affcba899f6632b925a50ed2294ec3dc0b5266 Mon Sep 17 00:00:00 2001 From: Philipp-Andre Plogmann Date: Thu, 5 Apr 2018 23:03:37 +0200 Subject: [PATCH 2/2] formatting --- test/basic.html | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/basic.html b/test/basic.html index cfca08d..88f2bac 100644 --- a/test/basic.html +++ b/test/basic.html @@ -241,11 +241,9 @@ - - @@ -919,16 +917,13 @@ document.getElementById('repeat').items = ['item']; - Polymer.Base.async(function() { document.getElementById('paper_0').value = 'input1++'; document.getElementById('if').if = true; Polymer.Base.async(function() { - document.getElementById('dynamic_if').value = 'input1++'; - form.reset(); expect(document.getElementById('paper_0').value).to.be.equal('input');