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常用技巧收集整理篇
Nov 14 Javascript
基于javascript 闭包基础分享
Jul 10 Javascript
网站内容禁止复制和粘贴、另存为的js代码
Feb 26 Javascript
js实现文本框中焦点在最后位置
Mar 04 Javascript
EasyUi combotree 实现动态加载树节点
Apr 01 Javascript
网页瀑布流布局jQuery实现代码
Oct 21 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
Nov 18 Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
Aug 20 Javascript
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
angular 表单验证器验证的同时限制输入的实现
Apr 11 Javascript
layui之数据表格--与后台交互获取数据的方法
Sep 29 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 5.0对象模型深度探索之绑定
2006/09/05 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
Python and、or以及and-or语法总结
2015/04/14 Python
使用pdb模块调试Python程序实例
2015/06/02 Python
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
python实现俄罗斯方块游戏
2020/03/25 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
python实现最短路径的实例方法
2020/07/19 Python
简述数组与指针的区别
2014/01/02 面试题
周年庆典主持词
2014/04/02 职场文书
财务务虚会发言材料
2014/10/20 职场文书
2014年派出所工作总结
2014/11/21 职场文书
客房部经理岗位职责
2015/02/02 职场文书
工作简报格式范文
2015/07/21 职场文书
大学入学感言
2015/08/01 职场文书
素质教育学习心得体会
2016/01/19 职场文书
使用python创建股票的时间序列可视化分析
2022/03/03 Python
Kubernetes控制节点的部署
2022/04/01 Servers