From 785184c922c17e9bbd0f38f53e7e4881b9d2ae29 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Thu, 5 Nov 2020 02:58:49 +0000 Subject: "Invalid form authenticity token" error when submitting an Ajax form with Ctrl+Enter (#29473). Patch by Mizuki ISHIKAWA. git-svn-id: http://svn.redmine.org/redmine/trunk@20255 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- public/javascripts/application.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'public/javascripts') diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 90a5189fe..c9b7d943d 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -855,8 +855,15 @@ $(document).on('keydown', 'form textarea', function(e) { // Submit the form with Ctrl + Enter or Command + Return var targetForm = $(e.target).closest('form'); if(e.keyCode == 13 && ((e.ctrlKey && !e.metaKey) || (!e.ctrlKey && e.metaKey) && targetForm.length)) { - $(e.target).closest('form').find('textarea').blur().removeData('changed'); - targetForm.submit(); + // For ajax, use click() instead of submit() to prevent "Invalid form authenticity token" error + if (targetForm.attr('data-remote') == 'true') { + if (targetForm.find('input[type=submit]').length === 0) { return false; } + targetForm.find('textarea').blur().removeData('changed'); + targetForm.find('input[type=submit]').first().click(); + } else { + targetForm.find('textarea').blur().removeData('changed'); + targetForm.submit(); + } } }); -- cgit v1.2.3