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 EasyUI API 中文文档 - Documentation 文档
Sep 29 Javascript
九种js弹出对话框的方法总结
Mar 12 Javascript
jquery的ajax异步请求接收返回json数据实例
Jun 16 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
Mar 13 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
Nov 07 Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 Javascript
浅谈JavaScript的计时器对象
Dec 26 Javascript
完美实现js选项卡切换效果(二)
Mar 08 Javascript
详解如何在Vue2中实现组件props双向绑定
Mar 29 Javascript
vscode 开发Vue项目的方法步骤
Nov 25 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
Apr 30 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
May 15 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学习之数组的定义和填充
2011/04/17 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
node 版本切换的实现
2020/02/02 Javascript
python自动格式化json文件的方法
2015/03/11 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
Sentry错误日志监控使用方法解析
2020/11/12 Python
Python用Jira库来操作Jira
2020/12/28 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
期末考试动员演讲稿
2014/01/10 职场文书
校长寄语大全
2014/04/09 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
思想道德自我评价2015
2015/03/09 职场文书
教师节随笔
2015/08/15 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android