form 转json最佳示例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="application/javascript" src="js/jquery-2.0.3.js"></script>
<title>无标题文档</title>
<script type="application/javascript">


$.fn.serializeObject = function()  
{  
   var o = {};  
   var a = this.serializeArray();  
   $.each(a, function() {  
       if (o[this.name]) {  
           if (!o[this.name].push) {  
               o[this.name] = [o[this.name]];  
           }  
           o[this.name].push(this.value || '');  
       } else {  
           o[this.name] = this.value || '';  
       }  
   });  
   return o;  
};


function onClik(){
   //var data = $("#form1").serializeArray(); //自动将form表单封装成json
//alert(JSON.stringify(data));
   var jsonuserinfo = $('#form1').serializeObject();
alert(JSON.stringify(jsonuserinfo));
}
</script>
</head>


<body>
<form id="form1" name="form1" method="post" action="">
  <p>进货人 :
    <label for="name"></label>
    <input type="text" name="name" id="name" />
  </p>
  <p>性别:
    <label for="sex"></label>
    <select name="sex" size="1" id="sex">
      <option value="1">男</option>
      <option value="2">女</option>
    </select>
  </p>
  <table width="708" border="1">
    <tr>
      <td width="185">商品名</td>
      <td width="205">商品数量</td>
      <td width="296">商品价格</td>
    </tr>
    <tr>
      <td><label for="pro_name"></label>
        <input type="text" name="pro_name" id="pro_name" /></td>
      <td><label for="pro_num"></label>
        <input type="text" name="pro_num" id="pro_num" /></td>
      <td><label for="pro_price"></label>
        <input type="text" name="pro_price" id="pro_price" /></td>
    </tr>
    <tr>
      <td><input type="text" name="pro_name2" id="pro_name2" /></td>
      <td><input type="text" name="pro_num2" id="pro_num2" /></td>
      <td><input type="text" name="pro_price2" id="pro_price2" /></td>
    </tr>
  </table>
  <p> </p>
  <input type="button" name="submit" οnclick="onClik();" value="提交"/>
</form>
</body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
form-datajson的方法可以使用JavaScript中的FormData对象和serializeArray()方法来实现。首先,我们可以使用FormData对象来获取表单中的所有数据,然后使用serializeArray()方法将FormData对象换为一个包含键值对的数组。接下来,我们可以遍历这个数组,将每个键值对换为一个JSON对象。在换过程中,我们可以根据需要对值进行自定义处理,比如将空值换为null。最后,将所有的JSON对象组合成一个对象数组并返回。 以下是一个示例代码,用于将form-data换为JSON对象数组: ```javascript function transformToJson(form) { var jsonData = {}; var formData = new FormData(form); var formArray = $(form).serializeArray(); $.each(formArray, function() { var dataType = $("select\[name='" + this.name + "'\]").attr("data-type"); var value = this.value; if (value == "无" || value == "") { value = null; } if (jsonData\[this.name\]) { if (!jsonData\[this.name\].push) { jsonData\[this.name\] = \[jsonData\[this.name\]\]; } jsonData\[this.name\].push(value || ''); } else { if (dataType == 'array') { jsonData\[this.name\] = \[\]; jsonData\[this.name\].push(value || ''); } else { jsonData\[this.name\] = value || ''; } } }); return jsonData; } ``` 这个函数接受一个表单作为参数,并返回一个换后的JSON对象数组。你可以将表单元素传递给这个函数,然后使用返回的JSON对象数组进行后续操作。 引用\[1\]中提到了form-data的两种格式:multipart/form-data和x-www-form-urlencoded。这个函数适用于x-www-form-urlencoded格式的form-data换为JSON对象数组。如果你需要处理multipart/form-data格式的form-data,你可能需要使用其他方法来解析和处理这种格式的数据。 希望这个回答对你有帮助!\[1\]\[2\] #### 引用[.reference_title] - *1* *3* [浅谈 JSON 对象和 FormData 相互换,打通前端与后端的通信血脉](https://blog.csdn.net/Shids_/article/details/128931933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [表单数据换为JSON对象 3种方法](https://blog.csdn.net/weixin_60664977/article/details/124453249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值