swneng

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

//改方法主要就是序列化页面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;
     }

posted on 2008-10-08 16:02  易哲  阅读(167)  评论(0编辑  收藏  举报