zoukankan      html  css  js  c++  java
  • SLib序列化页面输入框的值

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

  • 相关阅读:
    第一部分:开发前的准备-第二章 基础入门
    多线程笔记
    .net平台下垃圾回收机制
    xml基本操作和保存配置文件应用实例
    .net平台下C#socket通信(中)
    .net平台下C#socket通信(上)
    泛型
    面向过程和面向对象及面向对象的三大特征
    值类型和引用类型及参数传递
    js中typeof与instanceof区别
  • 原文地址:https://www.cnblogs.com/swneng/p/1306430.html
Copyright © 2011-2022 走看看