Saya mencari dan menemukan beberapa cara untuk mendapatkan tombol kirim name
+ value
dikirim ke server menggunakan jQuery + AJAX. Saya tidak begitu menyukai mereka ...
Salah satu yang terbaik adalah solusi pemburu yang disajikan di sini!
Tapi saya sendiri yang menulis satu sama lain.
Saya ingin berbagi, karena itu bagus, dan, sesuai kebutuhan, ini berfungsi juga dengan formulir yang dimuat melalui ajax (setelah 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'));
});
Sederhana! Saat tombol kirim diklik, bidang tersembunyi ditambahkan ke formulir, menggunakan sama name
danvalue
tombol yang kirim.
EDIT: Versi di bawah ini lebih mudah dibaca. Juga, ini menangani penghapusan bidang tersembunyi yang ditambahkan sebelumnya (dalam kasus mengirimkan formulir yang sama dua kali, yang sangat mungkin saat menggunakan AJAX).
Kode yang ditingkatkan:
$(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()
. Saya pikir acara klik adalah cara yang tepat.