From 31208fe9a138ae29a114a28155e73b3e9b259ce3 Mon Sep 17 00:00:00 2001 From: Giteabot Date: Tue, 15 Aug 2023 20:10:50 +0800 Subject: [PATCH] Set "type=button" for editor's toolbar buttons (#26510) (#26518) Backport #26510 by @wxiaoguang The editor usually is in a form, so the buttons should have "type=button", avoid conflicting with the form's submit. Co-authored-by: wxiaoguang --- web_src/js/features/comp/ComboMarkdownEditor.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web_src/js/features/comp/ComboMarkdownEditor.js b/web_src/js/features/comp/ComboMarkdownEditor.js index 48e3ca5bd24c..4ea7c3e63af6 100644 --- a/web_src/js/features/comp/ComboMarkdownEditor.js +++ b/web_src/js/features/comp/ComboMarkdownEditor.js @@ -78,6 +78,8 @@ class ComboMarkdownEditor { for (const el of this.textareaMarkdownToolbar.querySelectorAll('.markdown-toolbar-button')) { // upstream bug: The role code is never executed in base MarkdownButtonElement https://github.com/github/markdown-toolbar-element/issues/70 el.setAttribute('role', 'button'); + // the editor usually is in a form, so the buttons should have "type=button", avoiding conflicting with the form's submit. + if (el.nodeName === 'BUTTON' && !el.getAttribute('type')) el.setAttribute('type', 'button'); } const monospaceButton = this.container.querySelector('.markdown-switch-monospace');