ฉันค้นหาและพบหลายวิธีในการรับปุ่มส่ง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()
สคริปต์อาจจะทำ ฉันคิดว่าเหตุการณ์คลิกเป็นวิธีที่จะไป