Forms: Remember submit from click event before

This helps Safari to determine the correct clicked or pressed submit button in case the form has more than one.
This commit is contained in:
Eric Lippmann 2016-06-27 10:41:16 +02:00
parent fc5ed3feb1
commit cefdc496ef
1 changed files with 15 additions and 0 deletions

View File

@ -129,6 +129,7 @@
$(document).on('click', 'a', { self: this }, this.linkClicked);
$(document).on('click', 'tr[href]', { self: this }, this.linkClicked);
$(document).on('click', 'input[type="submit"], button[type="submit"]', this.rememberSubmitButton);
// We catch all form submit events
$(document).on('submit', 'form', { self: this }, this.submitForm);
@ -197,6 +198,12 @@
return self.autoSubmitForm(event);
},
rememberSubmitButton: function(e) {
var $button = $(this);
var $form = $button.closest('form');
$form.data('submitButton', $button);
},
autoSubmitForm: function (event) {
return event.data.self.submitForm(event, true);
},
@ -217,6 +224,14 @@
var $target;
var data;
var $rememberedSubmittButton = $form.data('submitButton');
if (typeof $rememberedSubmittButton != 'undefined') {
if ($form.has($rememberedSubmittButton)) {
$button = $rememberedSubmittButton;
}
$form.removeData('submitButton');
}
if ($button.length === 0) {
var $el;