From dc3a0e1a329bd2a609747ff33318806a559ca61e Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Fri, 12 Jan 2018 17:33:23 +0100 Subject: [PATCH] Clone onchange in cloneNode() --- adminer/static/editing.js | 4 ---- adminer/static/functions.js | 8 ++++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/adminer/static/editing.js b/adminer/static/editing.js index 6ecce30b..98108f50 100644 --- a/adminer/static/editing.js +++ b/adminer/static/editing.js @@ -392,7 +392,6 @@ function partitionByChange() { function partitionNameChange() { var row = cloneNode(parentTag(this, 'tr')); row.firstChild.firstChild.value = ''; - row.firstChild.firstChild.onchange = this.onchange; parentTag(this, 'table').appendChild(row); this.onchange = function () {}; } @@ -473,9 +472,6 @@ function indexesAddColumn(prefix) { select = selects[i]; select.name = select.name.replace(/\]\[\d+/, '$&1'); select.selectedIndex = 0; - if (!i) { - select.onchange = field.onchange; - } } field.onchange = partial(indexesChangeColumn, prefix); var inputs = qsa('input', column); diff --git a/adminer/static/functions.js b/adminer/static/functions.js index 566ee770..f3168c85 100644 --- a/adminer/static/functions.js +++ b/adminer/static/functions.js @@ -857,6 +857,14 @@ function focus(el) { */ function cloneNode(el) { var el2 = el.cloneNode(true); + var selector = 'input, select'; + var origEls = qsa(selector, el); + var cloneEls = qsa(selector, el2); + for (var i=0; i < origEls.length; i++) { + if (origEls[i].onchange) { + cloneEls[i].onchange = origEls[i].onchange; + } + } setupSubmitHighlight(el2); return el2; }