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 相关文章推荐
jqPlot jquery的页面图表绘制工具
Jul 25 Javascript
javascript父子页面通讯实例详解
Jul 17 Javascript
javascript常用函数(2)
Nov 05 Javascript
BootStrap网页中代码显示用法详解
Oct 21 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 Javascript
关于iframe跨域POST提交的方法示例
Jan 15 Javascript
vue.js全局API之nextTick全面解析
Jul 07 Javascript
详解从新建vue项目到引入组件Element的方法
Aug 29 Javascript
用JavaScript做简易的购物车的代码示例
Oct 20 Javascript
vue多层嵌套路由实例分析
Mar 19 Javascript
vue实现选中效果
Oct 07 Javascript
vue打开其他项目页面并传入数据详解
Nov 25 Vue.js
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
PHP4实际应用经验篇(6)
2006/10/09 PHP
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
php实现的双向队列类实例
2014/09/24 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
Python 读写文件和file对象的方法(推荐)
2016/09/12 Python
python表格存取的方法
2018/03/07 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
基于python plotly交互式图表大全
2019/12/07 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
数组越界问题
2015/10/21 面试题
个人承诺书
2014/03/26 职场文书
我爱读书演讲稿
2014/05/07 职场文书
工人先锋号申报材料
2014/12/29 职场文书
回门宴新娘答谢词
2015/09/29 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
Python基础之操作MySQL数据库
2021/05/06 Python
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技