jQuery ajax提交Form表单实例(附demo源码)


Posted in Javascript onApril 06, 2016

本文实例讲述了jQuery ajax提交Form表单的方法。分享给大家供大家参考,具体如下:

Jquery的$.ajax方法可以实现ajax调用,要设置url,post,参数等。

如果要提交现有Form需要写很多代码,何不直接将Form的提交直接转移到ajax中呢。

以前的处理方法

如Form代码如下:

<form id="Form1" action="action.aspx" method="post" >
名称:<input name="name" type="text" /><br />
密码:<input name="password" type="password" /><br />
手机:<input name="mobile" type="text" /><br />
说明:<input name="memo" type="text" /><br />
<input type="submit" value="提 交" />
</form>

当提交后,会跳转到action.aspx页面。并可以通过Request.Params["name"]可以取到值。

思考

如果不想刷新页面使用ajax,就又要在$.ajax中指定url,等信息,不好维护。

在网上查了一下,老早以前老外就有解决方案了。使用ajax直接按照Form信息直接提交。不刷新页面。

参考资料:http://jquery.malsup.com/form/

很好用,但我还是愿意自己写个自己用的。

核心JS代码

//将form转为AJAX提交
function ajaxSubmit(frm, fn) {
  var dataPara = getFormJson(frm);
  $.ajax({
    url: frm.action,
    type: frm.method,
    data: dataPara,
    success: fn
  });
}
//将form中的值转换为键值对。
function getFormJson(frm) {
  var o = {};
  var a = $(frm).serializeArray();
  $.each(a, function () {
    if (o[this.name] !== undefined) {
      if (!o[this.name].push) {
        o[this.name] = [o[this.name]];
      }
      o[this.name].push(this.value || '');
    } else {
      o[this.name] = this.value || '';
    }
  });
  return o;
}

ajaxSubmit方法第一个参数,是要提交的form,第二个参数是ajax调用成功后的处理函数。

将form的action传递给ajax的url,form的method传递给ajax的type,再将格式化后的表单内容传递给data。

getFormJson方法将form的元素转化为json格式键值对。形如:{name:'aaa',password:'tttt'},注意将同名的放在一个数组里。

调用

//调用
$(document).ready(function(){
  $('#Form1').bind('submit', function(){
    ajaxSubmit(this, function(data){
      alert(data);
    });
    return false;
  });
});

在ajaxSubmit方法调用前,可验证数据是否正确,在alert(data)处可加入自己调用返回后处理代码。

在调用ajaxSubmit方法后,必须添加return false;语句防止Form真实提交。

完整实例代码点击此处本站下载。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
判断客户端浏览器是否安装了Flash插件的多种方法
Aug 11 Javascript
JavaScript 选中文字并响应获取的实现代码
Aug 28 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
Nov 04 Javascript
jQuery手机拨号界面特效代码分享
Aug 27 Javascript
jquery 判断div show的状态实例
Dec 03 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
基于Vue中使用节流Lodash throttle详解
Oct 30 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
Dec 16 Javascript
微信小程序之高德地图多点路线规划过程示例详解
Jan 18 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
Apr 06 #Javascript
JS控制伪元素的方法汇总
Apr 06 #Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 #Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
Apr 06 #Javascript
jQuery实现HTML表格单元格的合并功能
Apr 06 #Javascript
JS中JSON对象和String之间的互转及处理技巧
Apr 06 #Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 #Javascript
You might like
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
php HTML无刷新提交表单
2016/04/05 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
监察建议书格式
2014/05/19 职场文书
廉洁校园实施方案
2014/05/25 职场文书
2015年招聘工作总结
2014/12/12 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
react如何快速设置文件路径别名
2021/04/28 Javascript
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
Tomcat用户管理的优化配置详解
2022/03/31 Servers
apache ftpserver搭建ftp服务器
2022/05/20 Servers
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python