JS中 提取form内容生成json格式

function FindById(parent,id)
{
 var objFromChild = null ;
 for (var i = 0 ; i < parent.childNodes.length ; ++i)
 {  
  if (parent.childNodes[i].id == id)
  {
   return parent.childNodes[i];
  }
  objFromChild=FindById(parent.childNodes[i], id);
  if(objFromChild!= null)
   return objFromChild ;
 }
 return objFromChild ;
}
function FindByName(parent,n_name)
{
    var objFromChild = null ;
 if(parent.childNodes.length>0){
  for (var i = 0 ; i < parent.childNodes.length ; ++i)
  {  
      var node_name = parent.childNodes[i].name;
   if (node_name)
   {
      if(node_name==n_name){
        return parent.childNodes[i];
      }
   }
   objFromChild=FindByName(parent.childNodes[i],n_name);
   if(objFromChild!= null)
   return objFromChild ;
  }
 }
 return objFromChild;
}


function formToJsonStr(obj)                            {//提取form内容生成json格式
 var inputlist=obj.getElementsByTagName("INPUT");
 var selectlist=obj.getElementsByTagName("SELECT");
 var textarealist=obj.getElementsByTagName("TEXTAREA");
 var strJson = "{";
 var chk_array=new Array();  
 var rdo_array=new Array();
 for(var i=0;i<inputlist.length;i++){
  switch(inputlist[i].type){
   case "text":
    strJson += "\'" + inputlist[i].name +"\':\'"+filter_str(inputlist[i].value)+"\',";
   break;
   case "password":
    strJson += "\'" + inputlist[i].name +"\':\'"+filter_str(inputlist[i].value)+"\',";
   break;
   case "checkbox":
     var k=0;
     for(var j=0;j<chk_array.length;j++){
         if(inputlist[i].name==chk_array[j][0]){k=k+1;break;}
     }
     if(k==0) chk_array[chk_array.length] = [inputlist[i].name];
   break;
   case "radio":
     var k=0;
     for(var j=0;j<rdo_array.length;j++){
         if(inputlist[i].name==rdo_array[j][0]){k=k+1;break;}
     }
     if(k==0) rdo_array[rdo_array.length] = [inputlist[i].name];
   break;
   case "hidden":
     strJson += "\'" + inputlist[i].name +"\':\'"+filter_str(inputlist[i].value)+"\',";
   break;
   default:break;
  }
 }
 for(var i=0;i<chk_array.length;i++){//get check box list
     var temp="";
     var k=0;
     for(var j=0;j<inputlist.length;j++){
      if(chk_array[i][0]==inputlist[j].name && inputlist[j].checked==true){
             if(k>0) temp+=",";
       temp += inputlist[j].value;        
       k++;
      }
     }
     strJson += "\'" + chk_array[i][0] +"\':\'"+temp+"\',";
 }
 for(var i=0;i<rdo_array.length;i++){//get radio list
     var temp="";
     for(var j=0;j<inputlist.length;j++){
      if(rdo_array[i][0]==inputlist[j].name && inputlist[j].checked==true){
       temp+= inputlist[j].value;        
      }
     }
     strJson += "\'" + rdo_array[i][0] +"\':\'"+temp+"\',";
 }
 for(var i=0;i<selectlist.length;i++){
  if(selectlist[i].options.length>0){
   var temp="";
   var sel=selectlist[i].options.selectedIndex;
   if(sel>-1) temp=selectlist[i].options[sel].value
   strJson+="\'"+selectlist[i].name+"\':\'"+temp+"\',";
  }else{
     strJson+="\'"+selectlist[i].name+"\':\'\',";
  }
 }
 for(var i=0;i<textarealist.length;i++){
  var str=textarealist[i].value;  
    str=str.replace(/\r\n/g,'') 
  strJson += "\'" + filter_str(textarealist[i].name) +"\':\'"+str+"\',";
 }
 if(strJson.length>1)strJson=strJson.substr(0,strJson.length-1);
 strJson+="}";
 return strJson;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值