使用jQuery serialize()和AJAX发送表单的一部分
我正在尝试使用jQuery的序列化通过AJAX发送一个表单的一部分。 表单有16个文本字段。 我有4个按钮。 button0
发送文本字段0,1,2,3, button1
发送文本字段4,5,6,7等等。我该怎么办?
HTML
Serialize
jQuery的:
$(document).ready(function(){ for(i=0;i<16;i++){ $('form').append('Campo de texto '+i+'
'); } for(i=0;i<4;i++){ $('form').append('
'); } $('form').append('
'); });
如果你真的想只留下一个表格,试试像我在这个小提琴中所做的那样。
为表单创建子部件。
然后只需选择部件的所有元素:
$(document).ready(function() { $('#button1').on('click', function() { alert($('#first input').serialize()); }); $('#button2').on('click', function() { alert($('#second input').serialize()); }); });
当然,如果您还有选择框,则必须将它们添加到选择器中。 例如:
$('#second input, #second select').serialize()
尝试DEMO和CODE
例如,根据您的需要进行修改:
这将获得具有form2类的所有输入。
var formData = $(form).find('#selectedOptions : input') . serialize(); $.post(url, formData) .done(function (data) { alert('hi'); }); where #selectedOptions is id of the element.
更加语义和细化的方法是使用自定义属性来选择不同的表单部分。 使表单元素重新分配给不同的按钮更容易,而不会弄乱容器。
$('button[name="button1"]').click(function() { data = $('[scope="part1"]').serialize(); console.log(data); }); $('button[name="button2"]').click(function() { data = $('[scope="part2"]').serialize(); console.log(data); });