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学习笔记2 函数
Jan 11 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 Javascript
express的中间件basicAuth详解
Dec 04 Javascript
JavaScript检测实例属性, 原型属性
Feb 04 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 Javascript
详解JavaScript中的六种错误类型
Sep 21 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
Nov 21 Javascript
JQuery实现ajax请求的示例和注意事项
Dec 10 jQuery
最简单的JS实现json转csv的方法
Jan 10 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 Javascript
javascript实现动态时钟的启动和停止
Jul 29 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多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
如何在PHP中读写文件
2020/09/07 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
Python格式化压缩后的JS文件的方法
2015/03/05 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
python之super的使用小结
2018/08/13 Python
浅谈python常用程序算法
2019/03/22 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
python匿名函数用法实例分析
2019/08/03 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
高中军训感想800字
2014/02/23 职场文书
测量员岗位职责
2015/02/14 职场文书
篮球赛新闻稿
2015/07/17 职场文书
房产遗嘱范本
2015/08/06 职场文书
单位病假条范文
2015/08/17 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
SQL CASE 表达式的具体使用
2022/03/21 SQL Server
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏