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;
         }

  • 相关阅读:
    ESFramework Demo -- 动态组及群聊Demo(附源码)
    反射整理学习
    JavaScript 每周导读
    SQLSERVER 中的 with锁级别
    代码细节重构:请对我的代码指手划脚
    SQLServer查询死锁语句
    模块加载系统 v16
    数据结构之排序算法C#实现
    浅谈操作系统对内存的管理
    如何编写可维护的面向对象JavaScript代码
  • 原文地址:https://www.cnblogs.com/swneng/p/1306430.html
Copyright © 2011-2022 走看看