From 64968c3081d29b0809c5ed5b23de69e3310bde47 Mon Sep 17 00:00:00 2001 From: Jascha Urbach Date: Sun, 18 Dec 2022 22:28:05 +0100 Subject: [PATCH 1/4] Update forms.js fixes #2519 --- bookwyrm/static/js/forms.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bookwyrm/static/js/forms.js b/bookwyrm/static/js/forms.js index 998873898..57b6fbdf8 100644 --- a/bookwyrm/static/js/forms.js +++ b/bookwyrm/static/js/forms.js @@ -46,4 +46,10 @@ document .querySelectorAll("[data-remove]") .forEach((node) => node.addEventListener("click", removeInput)); + + document.getElementById("id_description").addEventListener("keypress", function (event) { + if (event.keyCode == 13) { + event.preventDefault(); + } + }); })(); From e4892701d8c9a4449012ac725fbfb5763901fd88 Mon Sep 17 00:00:00 2001 From: Jascha Urbach Date: Mon, 19 Dec 2022 23:57:00 +0100 Subject: [PATCH 2/4] Update forms.js Now it works in the correct fields. --- bookwyrm/static/js/forms.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bookwyrm/static/js/forms.js b/bookwyrm/static/js/forms.js index 57b6fbdf8..dc84ff5bb 100644 --- a/bookwyrm/static/js/forms.js +++ b/bookwyrm/static/js/forms.js @@ -47,9 +47,14 @@ .querySelectorAll("[data-remove]") .forEach((node) => node.addEventListener("click", removeInput)); - document.getElementById("id_description").addEventListener("keypress", function (event) { - if (event.keyCode == 13) { - event.preventDefault(); + document + .querySelectorAll("[name='subjects']") + .forEach((node) => node.addEventListener("keypress", + function (event) { + if (event.keyCode == 13) { + event.preventDefault(); + } } - }); + )) + })(); From 259ceeea218d68e11ced7c81d489fa5338bb2c83 Mon Sep 17 00:00:00 2001 From: Jascha Urbach Date: Tue, 20 Dec 2022 00:06:02 +0100 Subject: [PATCH 3/4] ./bw-dev prettier --- bookwyrm/static/js/forms.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/bookwyrm/static/js/forms.js b/bookwyrm/static/js/forms.js index dc84ff5bb..2b25b3c96 100644 --- a/bookwyrm/static/js/forms.js +++ b/bookwyrm/static/js/forms.js @@ -47,14 +47,11 @@ .querySelectorAll("[data-remove]") .forEach((node) => node.addEventListener("click", removeInput)); - document - .querySelectorAll("[name='subjects']") - .forEach((node) => node.addEventListener("keypress", - function (event) { + document.querySelectorAll("[name='subjects']").forEach((node) => + node.addEventListener("keypress", function (event) { if (event.keyCode == 13) { event.preventDefault(); } - } - )) - + }) + ); })(); From 105144a026023a796824a5e4e66426681abb82bf Mon Sep 17 00:00:00 2001 From: Jascha Urbach Date: Tue, 20 Dec 2022 11:36:14 +0100 Subject: [PATCH 4/4] New approach: Event Delegation This works as follows: The div where the input fields for the subjects live got an id. The script now listens to all keypresses in this div, but only does something if it is within an INPUT field. If it is an INPUT field within this div, it looks for keyCode 13. If it is 13, preventDefault() is triggered. Else nothing happens. --- bookwyrm/static/js/forms.js | 12 ++++++++---- bookwyrm/templates/book/edit/edit_book_form.html | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bookwyrm/static/js/forms.js b/bookwyrm/static/js/forms.js index 2b25b3c96..a48675b35 100644 --- a/bookwyrm/static/js/forms.js +++ b/bookwyrm/static/js/forms.js @@ -47,11 +47,15 @@ .querySelectorAll("[data-remove]") .forEach((node) => node.addEventListener("click", removeInput)); - document.querySelectorAll("[name='subjects']").forEach((node) => - node.addEventListener("keypress", function (event) { + // Get the element, add a keypress listener... + document.getElementById("subjects").addEventListener("keypress", function (e) { + // e.target is the element where it listens! + // if e.target is input field within the "subjects" div, do stuff + if (e.target && e.target.nodeName == "INPUT") { + // Item found, prevent default if (event.keyCode == 13) { event.preventDefault(); } - }) - ); + } + }); })(); diff --git a/bookwyrm/templates/book/edit/edit_book_form.html b/bookwyrm/templates/book/edit/edit_book_form.html index 728b4819d..e85164444 100644 --- a/bookwyrm/templates/book/edit/edit_book_form.html +++ b/bookwyrm/templates/book/edit/edit_book_form.html @@ -81,7 +81,7 @@ {% include 'snippets/form_errors.html' with errors_list=form.languages.errors id="desc_languages" %} -
+