1年前接到一个项目,需要把项目内所有同步提交的表单改造为异步AJAX提交,当然不可能大量更改原有代码,采用的思路是,form提交时,在onsubmit方法中采用AJAX完成提交动作。实现方式为编写自定义标签。在此实现过程中,AJAX传参需要取出form表单中所有的键值,于是,就有了下面的代码:
function getFormValue(fromId){//传入表单ID
var frm=document.getElementById(fromId);//获取表单对象
var name,value,row="";
if(frm.elements.length){
for(var i=0;i<frm.length;i++){//遍历每个表单元素
var obj=frm[i];
if(obj.type!="submit"&&obj.type!="reset"&&obj.type!="button"){
if(obj.type=="radio"||obj.type=="checkbox"){
if(obj.checked){
name=obj.name;
value=obj.value;
row=row+name+"="+value+"&";
}
}else{
name=obj.name;
value=obj.value;
row=row+name+"="+value+"&";
}
}
}
}
return row;
}