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 相关文章推荐
用JS操作FRAME中的IFRAME及其内容的实现代码
Jul 26 Javascript
基于jQuery的ajax功能实现web service的json转化
Aug 29 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
Dec 23 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
jQuery消息提示框插件Tipso
May 04 Javascript
iScroll.js 使用方法参考
May 16 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
Feb 22 Javascript
关于vue的语法规则检测报错问题的解决
May 21 Javascript
vue.js配合$.post从后台获取数据简单demo分享
Aug 11 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
Nov 07 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
vue引用外部JS的两种种方法
Jan 28 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
ThinkPHP 表单自动验证运用示例
2014/10/13 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
js获得鼠标的坐标值的方法
2013/03/13 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
javascript中call()、apply()的区别
2019/03/21 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
Python下rrdtool模块的基本使用方法
2015/11/13 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
python中类的属性和方法介绍
2018/11/27 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
python字典按照value排序方法
2020/12/28 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
火车来了教学反思
2014/02/11 职场文书
建筑工地宣传标语
2014/06/18 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
2015年驾驶员工作总结
2015/04/29 职场文书
公司借条范本
2015/05/25 职场文书
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript