Я искал и нашел несколько способов получить кнопку отправки name
+value
на сервер с помощью jQuery + AJAX. Они мне не очень нравились ...
Одним из лучших было представленное здесь охотничье решение!
Но я написал еще один.
Хочу поделиться, потому что это хорошо и, по мере необходимости, работает и с формами, загруженными через ajax (после document.ready):
$(document).on('click', 'form input[type=submit]', function(){
$('<input type="hidden" />').appendTo($(this).parents('form').first()).attr('name', $(this).attr('name')).attr('value', $(this).attr('value'));
});
Просто! Когда нажимается кнопка отправки, в форму добавляется скрытое поле, используя то же самое name
и value
кнопки отправки.
РЕДАКТИРОВАТЬ: версию ниже легче читать. Кроме того, он позаботится об удалении ранее добавленных скрытых полей (в случае отправки одной и той же формы дважды, что вполне возможно при использовании AJAX).
Улучшенный код:
$(document).on('click', 'form input[type=submit]', function(){
var name = $(this).attr('name');
if (typeof name == 'undefined') return;
var value = $(this).attr('value');
var $form = $(this).parents('form').first();
var $input = $('<input type="hidden" class="temp-hidden" />').attr('name', name).attr('value', value);
$form.find('input.temp-hidden').remove();
$form.append($input);
});
formobj.submit()
. Я думаю, что события щелчка - это то, что нужно.