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 相关文章推荐
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
Nov 04 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
Mar 29 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
Feb 08 Javascript
jQuery取id有.的值的方法
May 21 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
Oct 30 Javascript
JavaScript面向对象之私有静态变量实例分析
Jan 14 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
Oct 03 Javascript
JS实现的样式切换功能tableCSS实例
Dec 30 Javascript
基于require.js的使用(实例讲解)
Sep 07 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
解决layer弹出层msg的文字不显示的问题
Sep 11 Javascript
浅谈JS的原型和原型链
Jun 04 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
PHP面向对象学习笔记之一 基础概念
2012/10/06 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
30个php操作redis常用方法代码例子
2014/07/05 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
清空元素html(&quot;&quot;) innerHTML=&quot;&quot; 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
python根据京东商品url获取产品价格
2015/08/09 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
django自带调试服务器的使用详解
2019/08/29 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
Pygame框架实现飞机大战
2020/08/07 Python
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
教师爱岗敬业演讲稿
2014/05/05 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
教师党员批评与自我批评
2014/10/15 职场文书
诚信高考倡议书
2019/06/24 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
Redis实现短信验证码登录的示例代码
2022/06/14 Redis
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android