summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/dirty_submit
diff options
context:
space:
mode:
authorLuke Bennett <lbennett@gitlab.com>2018-11-14 19:51:39 +0000
committerLuke Bennett <lbennett@gitlab.com>2019-01-22 02:04:32 +0000
commit88ce491fc981527ec864176e84332ecb7b8ac0ce (patch)
tree96f3d830af04995f54464f603f48a90199687c79 /app/assets/javascripts/dirty_submit
parent94d05e3c5ce59448d63ee96e3474b0cd3ef2c995 (diff)
downloadgitlab-ce-88ce491fc981527ec864176e84332ecb7b8ac0ce.tar.gz
Fix DirtySubmit handling of checkbox and radio inputs
Most browsers do not fire the "input" event for checkboxes or radios. Adds a "change" listener to properly trigger these DirtySubmit updates.
Diffstat (limited to 'app/assets/javascripts/dirty_submit')
-rw-r--r--app/assets/javascripts/dirty_submit/dirty_submit_form.js7
1 files changed, 4 insertions, 3 deletions
diff --git a/app/assets/javascripts/dirty_submit/dirty_submit_form.js b/app/assets/javascripts/dirty_submit/dirty_submit_form.js
index d8d0fa1fac4..00e41dd0301 100644
--- a/app/assets/javascripts/dirty_submit/dirty_submit_form.js
+++ b/app/assets/javascripts/dirty_submit/dirty_submit_form.js
@@ -25,15 +25,16 @@ class DirtySubmitForm {
DirtySubmitForm.THROTTLE_DURATION,
);
this.form.addEventListener('input', throttledUpdateDirtyInput);
+ this.form.addEventListener('change', throttledUpdateDirtyInput);
this.form.addEventListener('submit', event => this.formSubmit(event));
}
updateDirtyInput(event) {
- const input = event.target;
+ const { target } = event;
- if (!input.dataset.isDirtySubmitInput) return;
+ if (!target.dataset.isDirtySubmitInput) return;
- this.updateDirtyInputs(input);
+ this.updateDirtyInputs(target);
this.toggleSubmission();
}