//改方法主要就是序列化页面form元素下的控件的值,以便ajax传到其他页面
//这个方法还有点问题,就是不能序列化radio和checkbox控件的值,还需要改进,如果有朋友可以指点的话,再下感激不尽
function serializeForm(formID){
var formEle=document.getElementById(formID)||document.forms[formId];
var returnString="";
for(var i=0;i<formEle.elements.length;i++){
switch (formEle.elements[i].tagName){
case "INPUT":
switch(formEle.elements[i].type){
case "text":
returnString +=encodeURIComponent(formEle.elements[i].name) +"="+ encodeURIComponent(formEle.elements[i].value) +"&";
break;
case "checkbox":
if(returnString.indexOf(encodeURIComponent(formEle.elements[i].name) +"=") ==-1){
var chkList =document.getElementsByName(formEle.elements[i].name);
var chkvalue ="";
for(var chki=0;chki<chkList.length;chki++){
if(chkList[chki].getAttribute("checked")==true){
chkvalue +=chkList.value +",";
}
}
returnString +=encodeURIComponent(formEle.elements[i].name) +"="+ encodeURIComponent(chkvalue) +"&";
}
break;
case "radio":
if(formEle.elements[i].getAttribute("checked")==true){
alert("true");
returnString +=encodeURIComponent(formEle.elements[i].name) +"="+ encodeURIComponent(formEle.elements[i].value) +"&";
break;
}
case "password":
returnString +=encodeURIComponent(formEle.elements[i].name) +"="+ encodeURIComponent(formEle.elements[i].value) +"&";
break;
default :break;
}
case "SELECT":
if(formEle.elements[i].selectedIndex)
returnString +=encodeURIComponent(formEle.elements[i].name) +"="+encodeURIComponent(formEle.elements[i].options[formEle.elements[i].selectedIndex].value) +"&";
break;
case "TEXTAREA":
returnString +=encodeURIComponent(formEle.elements[i].name) +"="+ encodeURIComponent(formEle.elements[i].value) +"&";
break;
}
}
return returnString;
}