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 相关文章推荐
获取dom元素那些讨厌的位置封装代码
Jun 23 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
Mar 10 Javascript
javascript实现yield的方法
Nov 06 Javascript
JavaScript中省略元素对数组长度的影响
Oct 26 Javascript
JS验证全角与半角及相互转化的介绍
May 18 Javascript
vue router下的html5 history在iis服务器上的设置方法
Oct 18 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
js实现动态改变radio状态的方法
Feb 28 Javascript
浅谈手写node可读流之流动模式
Jun 01 Javascript
记一次react前端项目打包优化的方法
Mar 30 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 Javascript
vue点击按钮实现简单页面的切换
Sep 08 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
Mysql的常用命令
2006/10/09 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
PHP可变函数学习小结
2015/11/29 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
Nodejs学习item【入门手上】
2016/05/05 NodeJs
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
解决Vue打包后访问图片/图标不显示的问题
2019/07/25 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
python实现apahce网站日志分析示例
2014/04/02 Python
python中的__slots__使用示例
2015/02/26 Python
python 实现判断ip连通性的方法总结
2018/04/22 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
python访问hdfs的操作
2020/06/06 Python
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
PHP经典面试题
2016/09/03 面试题
大学生职业规划论文
2014/01/11 职场文书
情侣吵架检讨书
2014/02/05 职场文书
逃课上网检讨书
2014/02/20 职场文书
爱护公物标语
2014/06/24 职场文书
初中学习计划书范文
2014/09/15 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
运动会报道稿大全
2015/07/23 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技