From 229f7ff95ef2578adc280022e70284ec80e3dc17 Mon Sep 17 00:00:00 2001 From: n-peugnet Date: Sun, 20 Oct 2019 19:39:14 +0200 Subject: small fixes on ajax form submission - use only oninput change event - dont update unsavedchanges if toggle class - dont update unsavedchanges if ajax request fails --- assets/js/edit.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'assets') diff --git a/assets/js/edit.js b/assets/js/edit.js index 956250e..92a09b1 100644 --- a/assets/js/edit.js +++ b/assets/js/edit.js @@ -6,7 +6,6 @@ window.onload = () => { form = document.getElementById('update'); let inputs = form.elements; for (i = 0; i < inputs.length; i++) { - inputs[i].onchange = changeHandler; inputs[i].oninput = changeHandler; } @@ -25,8 +24,8 @@ window.onload = () => { function keyboardHandler(e) { if (e.composed) { if (e.ctrlKey) { - // console.log(e.key); switch (e.key) { + // ctrl + s case 's': e.preventDefault(); submitHandler(form); @@ -38,9 +37,12 @@ function keyboardHandler(e) { /** * Manage change event - * @param {Event} e + * @param {InputEvent} e */ function changeHandler(e) { + if(e.target.classList.contains("toggle")) { + return; + } unsavedChanges = true; } @@ -49,12 +51,11 @@ function changeHandler(e) { * @param {HTMLFormElement} form */ function submitHandler(form) { - unsavedChanges = false; - var xhr = new XMLHttpRequest(); var fd = new FormData(form); xhr.addEventListener("load", function(event) { + unsavedChanges = false; alert("updated"); }); xhr.addEventListener("error", function(event) { -- cgit v1.2.3