"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
This commit is contained in:
Go MAEDA
2020-11-05 02:58:49 +00:00
parent 86633c8a11
commit 785184c922

View File

@@ -855,9 +855,16 @@ $(document).on('keydown', 'form textarea', function(e) {
// Submit the form with Ctrl + Enter or Command + Return // Submit the form with Ctrl + Enter or Command + Return
var targetForm = $(e.target).closest('form'); var targetForm = $(e.target).closest('form');
if(e.keyCode == 13 && ((e.ctrlKey && !e.metaKey) || (!e.ctrlKey && e.metaKey) && targetForm.length)) { if(e.keyCode == 13 && ((e.ctrlKey && !e.metaKey) || (!e.ctrlKey && e.metaKey) && targetForm.length)) {
$(e.target).closest('form').find('textarea').blur().removeData('changed'); // 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(); targetForm.submit();
} }
}
}); });