ajax form数据封装,ajax提交整个form表单,ajax 自动获取当前form数据
//form数据封装
function formToString(formObj){
var allStr="";
if(formObj){
var elementsObj=formObj.elements;
var obj;
if(elementsObj){
for(var i=0; i<elementsObj.length;i+=1){
obj=elementsObj[i];
if(obj.name!=undefined&&obj.name!=""){
allStr+="&"+obj.name+"="+encodeURIComponent(obj.value);
}
}
}else{
alert("没有elements对象!");
return ;
}
}else{
alert("form不存在!");
return ;
}
return allStr;
}
$.ajax({
type: "POST",
url: "/Mall/ajax_cart.html",
data: formToString($("#orderform").get(0)),
success: function(msg){
$("#allmoney").html("¥"+msg);
}
});
以上方法有个bug就是radio及checkbox数据得到的结果不正确。
下面使用jquery自带方法serializeArray
$.ajax({
type: "POST",
url: "/Mall/ajax_cart.html",
data: $(form).serializeArray(),
dataType: 'json',
success: function(msg){
$("#allmoney").html("¥"+msg);
}
});
终于找到最实用的方法。