form表单获取数据并将json中的value值转换为key值

2 篇文章 0 订阅
2 篇文章 0 订阅

我是新菜,在此分享一下心得,莫见怪哈。
首先,说一下如何获取form表单中的值:
前提:引入jQuery

<form method="post" enctype='multipart/form-data' id='noteForm'>
  	<div class="note-type">
         <label for="noteTypeList">记事类型</label>
         <select id="noteTypeList" name="noteCategory">
             <option value="gujiajishu">估价技术</option>
             <option value="jishuanli">技术案例</option>
             <option value="shichangdongtai">市场动态</option>
         </select>
     </div>
     <div class="note-inpts">
         <div class="note-box">
             <label for="noteTitle">标题</label>
             <input id="noteTitle" type="text" name="noteTitle" />
         </div>
         <div class="note-box">
             <label for="noteKeys">关键字</label>
             <input id="noteKeys" type="text" name="noteKeys" /> 
         </div>
     </div>
  	<textarea id="summernote" name="noteContent" value=''></textarea>
  	<div class="note-btns"><button type="button" class="note-btn" id='button'>保存</button></div>
  </form>

注:form表单的type类型要用button,或者button类型是submit,form表单加个onsubmit事件,阻止表单提交。
获取表单数据:

$('#button').click(function(){
   $('#noteForm').serialize()
})

发现获取到的结果是:

noteCategory=gujiajishu&noteTitle=title&noteKeys=key&noteContent=content

获取到的form值是name=value并用&连接的,这不是我需要的json数据啊,还得解析,麻烦,再换一种方式:

$("button").click(function(){
       var formData=$('#noteForm').serializeArray();
       console.log(formData)
})

然后获取到的结果是:
serializeArray返回值
有点json值的样子了,直接name对应输入框的name值,value对应输入框的value值,但是我们后台要的值不是这种,我需要的是name对应value值,这是我入的坑之一,怪不得后台一直报提交数据错误,让我捂脸哭会,还得后期加工一下啊:

$("button").click(function(){
        var formData=$('#noteForm').serializeArray();
        var jsonObj={};
	    for(var i in formData){
		jsonObj[formData[i].name]=formData[i].value;
  }
  console.log(jsonObj);
})

然后得到如下结果,先让我激动会!!
key和value值对应结果
小伙伴们有更好的建议或意见可以恢复我哦O(∩_∩)O~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值