Tôi đã tìm kiếm và tìm thấy một số cách để lấy nút gửi name
+ value
được gửi đến máy chủ bằng jQuery + AJAX. Tôi không thích chúng cho lắm ...
Một trong những giải pháp tốt nhất là giải pháp của thợ săn được trình bày ở đây!
Nhưng tôi đã tự viết một cái khác.
Tôi muốn chia sẻ, bởi vì nó tốt và khi tôi cần, nó cũng hoạt động với các biểu mẫu được tải qua ajax (sau 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'));
});
Đơn giản! Khi nhấp vào nút gửi, một trường ẩn sẽ được thêm vào biểu mẫu, sử dụng cùng name
và value
của nút gửi.
CHỈNH SỬA: Phiên bản dưới đây dễ đọc hơn. Ngoài ra, nó sẽ xử lý loại bỏ các trường ẩn đã thêm trước đó (trong trường hợp gửi cùng một biểu mẫu hai lần, điều này hoàn toàn có thể thực hiện được khi sử dụng AJAX).
Cải tiến mã:
$(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()
. Tôi nghĩ rằng các sự kiện nhấp chuột là con đường để đi.