jQuery通过ajax快速批量提交表单数据


Posted in Javascript onOctober 25, 2016

当表单数据项很多时,手动获取表单项的值将变得效率低下,结合jQuery提供的函数serialize(),我们可以实现快速获取数据并提交表单数据。

请看下面的表单:

<form id="fm">
 <table>
 <tr>
  <td>姓名</td>
  <td>
  <input type="text" name="name" />
  </td>
 </tr>

 <tr>
  <td>年龄</td>
  <td>
  <input type="text" name="age" />
  </td>
 </tr>

 <tr>
  <td>密码</td>
  <td>
  <input type="password" name="password" />
  </td>
 </tr>

 <tr>
  <td>性别</td>
  <td>
  <input type="radio" name="sex" value="male" />男
  <input type="radio" name="sex" value="female" />女
  </td>
 </tr>

 <tr>
  <td>地区</td>
  <td>
  <select name="area">
   <option value="heping">和平区</option>
   <option value="nankai">南开区</option>
   <option value="xiqing">西青区</option>
   <option value="hexi">河西区</option>
  </select>
  </td>
 </tr>

 <tr>
  <td>爱好</td>
  <td>
  <input type="checkbox" name="hobby[]" value="movie" />电影
  <input type="checkbox" name="hobby[]" value="music" />音乐
  <input type="checkbox" name="hobby[]" value="basketball" />篮球
  </td>
 </tr>

 <tr>
  <td>个人介绍</td>
  <td>
  <textarea name="intro" ></textarea>
  </td>
 </tr>

 <tr>
  <td></td>
  <td>
  <input type="button" value="提交" id="submit" />
  </td>
 </tr>
 </table>
</form>

我们可以通过自定义函数getFormData()来获取表单的数据,请看下面的例子:

$(function(){
 $('#submit').click(function(){
 //选取表单
 var form = $('#fm');
 //获取表单数据
 var data = getFormData(form);
 //发送AJAX请求
 $.post('test.php',data,function(data){
  console.log('ok');
 });
 });
});

getFormData()的实现很简单:

function getFormData(form){
 var data = form.serialize();
 data = decodeURI(data);
 var arr = data.split('&');
 var item,key,value,newData={};
 for(var i=0;i<arr.length;i++){
 item = arr[i].split('=');
 key = item[0];
 value = item[1];
 if(key.indexOf('[]')!=-1){
  key = key.replace('[]','');
  if(!newData[key]){
  newData[key] = [];
  }
  newData[key].push(value);
 }else{
  newData[key] = value;
 }
 }
 return newData;
}

test.php接收到的数据将会是:

Array
(
 [name] => 3241324
 [age] => m_admin
 [password] => 123
 [sex] => male
 [area] => heping
 [hobby] => Array
 (
  [0] => movie
  [1] => music
 )
 [intro] => 321432423
)

和普通的表单提交的数据格式是一样的,我们可以很方便的进行处理!

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

Javascript 相关文章推荐
js获取当前select 元素值的代码
Apr 19 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
Nov 13 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
Feb 19 Javascript
js的延迟执行问题分析
Jun 23 Javascript
JavaScript常用验证函数实例汇总
Nov 25 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
Mar 21 Javascript
JS HTML5拖拽上传图片预览
Jul 18 Javascript
微信小程序 开发之全局配置
May 05 Javascript
Bootstrap 中data-[*] 属性的整理
Mar 13 Javascript
vee-validate vue 2.0自定义表单验证的实例
Aug 28 Javascript
微信小程序代码上传、审核发布小程序
May 18 Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 Javascript
jquery popupDialog 使用 加载jsp页面的方法
Oct 25 #Javascript
JavaScript模仿Pinterest实现图片预加载功能
Oct 25 #Javascript
微信小程序 video组件详解
Oct 25 #Javascript
微信小程序 form组件详解
Oct 25 #Javascript
微信小程序 icon组件详细及实例代码
Oct 25 #Javascript
js 提交form表单和设置form表单请求路径的实现方法
Oct 25 #Javascript
微信小程序  网络请求API详解
Oct 25 #Javascript
You might like
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
三维科技面试题
2013/07/27 面试题
会计出纳岗位职责
2013/12/25 职场文书
物流管理专业职业生涯规划书
2014/01/06 职场文书
学生周末长期请假条
2014/02/15 职场文书
大课间体育活动方案
2014/03/12 职场文书
交通工程专业推荐信
2014/09/06 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
收入证明范本
2015/06/12 职场文书
mysql函数之截取字符串的实现
2022/08/14 MySQL