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 相关文章推荐
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
Dec 08 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
Jul 28 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
使用Web Uploader实现多文件上传
Jun 08 Javascript
js 作用域和变量详解
Feb 16 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
vue服务端渲染的实例代码
Aug 28 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
Nov 22 Javascript
vue操作下拉选择器获取选择的数据的id方法
Aug 24 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
vue框架中props的typescript用法详解
Feb 17 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 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
WHOOPS PHP调试库的使用
2017/09/29 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
中止javascript执行的方法
2014/02/14 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python使用Scrapy爬取妹子图
2015/05/28 Python
Python手机号码归属地查询代码
2016/05/04 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python占位符输入方式实例
2019/05/27 Python
Python 里最强的地图绘制神器
2021/03/01 Python
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
采购员岗位职责
2013/11/15 职场文书
迎新晚会邀请函
2014/02/01 职场文书
留学推荐信范文
2014/05/10 职场文书
人大代表选举标语
2014/10/07 职场文书
专业见习报告范文
2014/11/03 职场文书
自主招生专家推荐信
2015/03/26 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery
python基础之函数的定义和调用
2021/10/24 Python
MySQL学习必备条件查询数据
2022/03/25 MySQL
Golang map映射的用法
2022/04/22 Golang