`

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

分享到:
评论

相关推荐

    2021-2022年12个月全球风场数据,json格式,用于二三维风场可视化展示

    描述中提到的“基于.nc4格式文件提取成json”,说明原始数据最初是以.NETCDF(Network Common Data Form)的变种——.nc4格式存储的。这种格式常用于科学计算,因为它支持大量的多维数组和元数据。为了便于在网络上...

    JSON生成Form表单的方法示例

    在现代Web开发中,尤其是在React框架中,JSON生成Form表单是一种高效的方法,能够帮助开发者快速构建动态且可复用的表单组件。JSON表单的核心理念是将表单的结构、数据和逻辑通过JSON数据格式进行描述,然后在运行时...

    Node.js-TypeForm的一个开源替代构建在nodejs之上可以从PDF或从头创建令人惊叹的表单

    描述中提到的“可以从PDF或从头创建令人惊叹的表单”,暗示了该开源项目具备两种主要特性:一是能够从现有的PDF文档中提取数据并转换为表单格式,这可能涉及到PDF解析和数据提取的技术;二是支持用户直接设计和创建...

    VB解析JSON

    `cJSONScript.cls`可能是实现了CJSONScript类,这是一个常见的JSON解析库,它能够帮助我们解析和生成JSON数据。`cStringBuilder.cls`可能是用来构建和操作字符串的类,这在处理JSON字符串时非常有用,因为JSON解析...

    json测试实例.pdf

    从提供的文件内容中,我们可以提取出几个重要的知识点,包括JSP页面编写、JSON数据格式、Ajax通信、JavaScript编程、Java类设计、Struts2框架的使用等。下面我将详细解释这些知识点。 首先,JSP(Java Server Pages...

    Jquery解析JSON和XML示例

    1. JSON:是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON基于JavaScript的一个子集,通常用于服务器向网页发送数据,因为它的结构与JavaScript对象相似,可以方便地被JavaScript...

    javascript表单域与json数据间的交互第1/3页

    在JSON中,这相当于属性的嵌套或数组索引。 ### JSON数据与JavaScript对象的转换 在提供的代码示例中,有两个主要的函数实现了表单与JSON之间的数据转换。 #### jsonObjectToForm(form, jsonObject) 这个函数的...

    jQuery+ajax+asp.net获取Json值的方法

    Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,是一种文本格式,常用于Web应用和服务器之间的数据交换。在文档中,...

    代理中Domino对域的解析和GetItemValue使用方法

    在Domino环境中,代理程序经常需要与表单中的不同类型的域进行交互,以执行诸如数据提取、更新或其他操作。本文将详细介绍如何在代理程序中通过LotusScript和JavaScript两种脚本语言来获取和解析不同类型的域,特别...

    json实现前后台的相互传值详解

    JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在Web开发中被广泛应用。其易于人阅读和编写,同时也易于机器解析和生成。本篇文章主要介绍了如何使用JSON实现前后台之间的数据传递,以及如何将...

    layui地址联动demo+sql

    2. **数据源**:准备省市区的数据,可以是JSON格式,存储在服务器端或者直接硬编码在JavaScript中。 3. **事件绑定**:使用layui的`form.on('select')`方法监听下拉框的改变事件,当选择项发生变化时触发处理函数。 ...

    网易云音乐下载例子.rar

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也便于机器解析和生成。在这个例子中,JSON解析尤为重要,因为它允许程序从API获取并提取歌曲的元数据,如歌曲ID、链接等,...

    JSP页面表格初始化

    - **数据绑定**:支持多种数据格式(如XML、JSON等),并通过API轻松实现数据绑定。 - **自定义列**:允许开发者灵活设置表格的列属性,如宽度、对齐方式、数据类型等。 - **交互性**:提供良好的用户体验,包括行...

    avalingua-form:用于简化围绕Avalingua-DepPattern生成语法规则的过程的表格

    Avalingua-form 是一个基于JavaScript的工具,主要用于简化Avalingua-DepPattern的语法规则生成过程。Avalingua是一个语言处理框架,它专注于语言分析和生成,特别是依赖性模式(Dependency Patterns),这是一种...

    前端项目-jQuery.serializeObject.zip

    在前端开发中,特别是涉及到表单数据时,我们经常需要将用户填写的信息转换为服务器可以理解的格式,JSON(JavaScript Object Notation)就是一种常见的、轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...

    ImageUploadOnNode:从Node v14中的对象JSON上传图像的简单项目

    4. **JSON对象**: JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在本项目中,JSON对象用于传输图像和其他元数据。 **项目实现步骤** 1. **初始化...

    VB百度的网页的翻译

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在VB中,我们可以使用内置的Json.NET库或者Newtonsoft.Json库来解析JSON数据。解析完成后,我们就...

    FLASH as3表单到asp.net页面提交并接收数据

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。XML(eXtensible Markup Language)则是一种更结构化的数据格式,对于复杂的数据交换非常有用。选择...

    asp post写的取cctv天气

    JSON(JavaScript Object Notation)则更轻量级,是用于交换数据的常用格式,易于阅读和编写,也易于机器解析和生成。 解析XML或JSON数据时,ASP可以使用内置的DOM(Document Object Model)对象或第三方库,如...

    php实现的密码登录网站

    4. **响应处理**:`login.php`根据验证结果生成JSON或XML响应,包含状态码和消息。JavaScript的AJAX回调函数接收到响应后,根据状态码更新页面内容,如显示登录成功或失败的消息。 5. **用户体验优化**:为了提高...

Global site tag (gtag.js) - Google Analytics