jquery拼接ajax 的json和字符串拼接的方法


Posted in Javascript onMarch 11, 2017

整理文档,搜刮出一个jquery拼接ajax 的json和字符串拼接的代码,稍微整理精简一下做下分享。

jQuery拼接字符串ajax

<form id="myForm" action="#">
  <input name="name"/>
  <input name="age"/>
  <input type="submit"/>
</form>
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
  (function($){
    $.fn.serializeJson=function(){
      var serializeObj={};
      $(this.serializeArray()).each(function(){
        serializeObj[this.name]=this.value;
      });
      return serializeObj;
    };

    $('#myForm').bind('submit',function(e){
      console.log($(this).serializeJson())
    })
  })(jQuery)

</script>

或者直接用$(“#表单id”).serialize()直接序列化。。。

上面的插件,不能适用于有多个值的输入控件,例如复选框、多选的select。下面,我将插件做进一步的修改,让其支持多选。代码如下:

Js代码

(function($){
  $.fn.serializeJson=function(){
    var serializeObj={};
    var array=this.serializeArray();
    var str=this.serialize();
    $(array).each(function(){
      if(serializeObj[this.name]){
        if($.isArray(serializeObj[this.name])){
          serializeObj[this.name].push(this.value);
        }else{
          serializeObj[this.name]=[serializeObj[this.name],this.value];
        }
      }else{
        serializeObj[this.name]=this.value;
      }
    });
    return serializeObj;
  };
})(jQuery);

这里,我将多选的值封装为一个数值来进行处理。如果大家使用的时候需要将多选的值封装为“,”连接的字符串或者其他形式,请自行修改相应代码。

测试如下:

表单:

Html代码

<form id=”myForm” action=”#”>
      <input name=”name”/>
      <input name=”age”/>
      <select multiple=”multiple” name=”interest” size=”2″>
      <option value =”interest1″>interest1</option>
      <option value =”interest2″>interest2</option>
      <option value=”interest3″>interest3</option>
      <option value=”interest4″>interest4</option>
      </select>
      <input type=”checkbox” name=”vehicle” value=”Bike” /> I have a bike
      <input type=”checkbox” name=”vehicle” value=”Car” /> I have a car
      <input type=”submit”/>
      </form>

测试结果:

{age: “aa”,interest: ["interest2", "interest4"],name: “dd”,vehicle:["Bike","Car"]}

<form id="myForm" action="#">
  <input name="name" value="111"/>
  <input name="age" value="2222"/>
  <button type="submit">tijiao</button>
</form>
</body>

<script src="../js/jquery-1.11.0.min.js"></script>
<script>
  var dataId = $("#myForm input").map(function (){
    // return($(this).attr("id"));
    return($(this).attr("name")+'='+$(this).val());
  }).get().join("&");
  alert(dataId);
  </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
重定向实现代码
Nov 20 Javascript
jQuery 对象中的类数组操作
Apr 27 Javascript
JavaScript 监听textarea中按键事件
Oct 08 Javascript
document.getElementById为空或不是对象的解决方法
Jan 24 Javascript
在JavaScript中操作时间之setYear()方法的使用
Jun 12 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
Apr 17 Javascript
使用JS组件实现带ToolTip验证框的实例代码
Aug 23 Javascript
基于Vue过渡状态实例讲解
Sep 14 Javascript
详解.vue文件中style标签的几个标识符
Jul 17 Javascript
Webstorm2016使用技巧(SVN插件使用)
Oct 29 Javascript
JS数组转字符串实现方法解析
Sep 04 Javascript
jquery mobile实现可折叠的导航按钮
Mar 11 #Javascript
前端开发之CSS原理详解
Mar 11 #Javascript
JS实现简易刻度时钟示例代码
Mar 11 #Javascript
js鼠标跟随运动效果
Mar 11 #Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
Mar 11 #Javascript
基于Node.js的WebSocket通信实现
Mar 11 #Javascript
js原生Ajax的封装和原理详解
Mar 11 #Javascript
You might like
PHP生成静态页面详解
2006/12/05 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
javascript new一个对象的实质
2010/01/07 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
最细致的vue.js基础语法 值得收藏!
2016/11/03 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
python的id()函数介绍
2013/02/10 Python
Python对象体系深入分析
2014/10/28 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
公司活动总结怎么写
2014/06/25 职场文书
医院合作协议书
2014/08/19 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
用python自动生成日历
2021/04/24 Python
web前端之css水平居中代码解析
2021/05/20 HTML / CSS