Szukałem i znalazłem kilka sposobów na otrzymanie przycisku przesyłania name
+ value
wysłanego do serwera za pomocą jQuery + AJAX. Nie bardzo mi się podobały ...
Jednym z najlepszych było zaprezentowane tutaj rozwiązanie myśliwskie!
Ale sam napisałem inny.
Chcę się udostępnić, ponieważ jest dobry i, jak potrzebowałem, działa również z formularzami ładowanymi przez ajax (po 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'));
});
Prosty! Po kliknięciu przycisku przesyłania ukryte pole jest dodawane do formularza za pomocą tego samego przycisku name
i value
przycisku przesyłania.
EDYCJA: Poniższa wersja jest bardziej czytelna. Dba również o usunięcie dołączonych wcześniej pól ukrytych (w przypadku dwukrotnego przesłania tego samego formularza, co jest doskonale możliwe przy wykorzystaniu AJAX).
Ulepszony kod:
$(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()
. Myślę, że zdarzenia związane z kliknięciami są do zrobienia.