]> source.dussan.org Git - redmine.git/commitdiff
"Invalid form authenticity token" error when submitting an Ajax form with Ctrl+Enter...
authorGo MAEDA <maeda@farend.jp>
Thu, 5 Nov 2020 02:58:49 +0000 (02:58 +0000)
committerGo MAEDA <maeda@farend.jp>
Thu, 5 Nov 2020 02:58:49 +0000 (02:58 +0000)
Patch by Mizuki ISHIKAWA.

git-svn-id: http://svn.redmine.org/redmine/trunk@20255 e93f8b46-1217-0410-a6f0-8f06a7374b81

public/javascripts/application.js

index 90a5189fea595da6a5481772dc8fe5a0b826276b..c9b7d943d37b80bf8d6396cc2f466a3a1b0a4c1a 100644 (file)
@@ -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();
+    }
   }
 });