$('#submit').click(function() {
$.ajax({
url : '/resource/addinfo',
type : 'POST',
data : $('#form').serializeObject(),
dataType : "json",
traditional:true,
success : function(data) {
if (data.success) {
alert('修改成功!');
} else {
alert('修改失败!' + data.errMsg);
}
}
});
});
$('#form')表示一个表单,表单中存在着一些名字相同的name,通过上面的方式把表单序列化后,会把相同名字的input标签变为数组,当点击submit时会把数据传送到后台,此时后台无法通过request.getParameterValues(name)获取表单里名称相对应的值,此时需要加上traditional:true.
当提交的参数是数组 {name:[value1,value2,value3]}
如果设置成true,则提交时会是"name=value1&name=value2..."
如果是false的话,则提交时会是"name[]=value1&name[]=value2..."
显然传统方式会产生值的覆盖,所以默认是:false,
jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架.