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 window.event对象详尽解析
Feb 17 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
js实现字符串的16进制编码不加密
Apr 25 Javascript
jquery实现的省市区三级联动
Apr 02 Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 Javascript
js编写一个简单的产品放大效果代码
Jun 27 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
Nov 23 Javascript
js获取当前页的URL与window.location.href简单方法
Feb 13 Javascript
Angularjs使用过滤器完成排序功能
Sep 20 Javascript
vue实现未登录跳转到登录页面的方法
Jul 17 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
Jan 30 Javascript
微信小游戏中three.js离屏画布的示例代码
Oct 12 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 4.2书写安全的脚本
2006/10/09 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
PHP小教程之实现链表
2014/06/09 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
关于IFRAME 自适应高度的研究
2006/07/20 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
Python深入学习之闭包
2014/08/31 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
pygame实现成语填空游戏
2019/10/29 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
求职简历自我评价范例
2014/03/12 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
教师自查自纠材料
2014/10/14 职场文书
摩登时代观后感
2015/06/03 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书
Python进度条的使用
2021/05/17 Python
JavaScript实现两个数组的交集
2022/03/25 Javascript
Win11 PC上的Outlook搜索错误怎么办?
2022/07/15 数码科技