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 相关文章推荐
javascript 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
jQuery实现长文字部分显示代码
May 13 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
Nov 08 Javascript
Vue.js对象转换实例
Jun 07 Javascript
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
webpack-dev-server远程访问配置方法
Feb 22 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
微信用户访问小程序的登录过程详解
Sep 20 Javascript
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
JS面向对象编程基础篇(一) 对象和构造函数实例详解
Mar 03 Javascript
小程序双头slider选择器的实现示例
Mar 31 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
Phpbean路由转发的php代码
2008/01/10 PHP
php算法实例分享
2015/07/14 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
2018/08/21 PHP
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
2015/09/06 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
Python异常处理总结
2014/08/15 Python
python列出目录下指定文件与子目录的方法
2015/07/03 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
python 全局变量的import机制介绍
2017/09/07 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
优秀的教师个人的中文求职信
2013/09/21 职场文书
中英文求职信范文
2014/01/27 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
求职意向书
2014/07/29 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
个人合伙协议书范本
2014/10/14 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
千万级用户系统SQL调优实战分享
2022/03/03 MySQL