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 相关文章推荐
javascript 控制 html元素 显示/隐藏实现代码
Sep 01 Javascript
JQuery 选择器 xpath 语法应用
May 13 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
Mar 19 Javascript
js实现杯子倒水问题自动求解程序
Mar 25 Javascript
JavaScript实现三阶幻方算法谜题解答
Dec 29 Javascript
jQuery中noConflict()用法实例分析
Feb 08 Javascript
Jquery网页内滑动缓冲导航的实现代码
Apr 05 Javascript
javascript的正则匹配方法学习
Feb 24 Javascript
Select下拉框模糊查询功能实现代码
Jul 22 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
Nov 04 Javascript
纯JS实现弹性导航条效果
Mar 06 Javascript
Vue.js标签页组件使用方法详解
Oct 19 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 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
不使用 JS 匿名函数理由
2017/11/17 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
python人民币小写转大写辅助工具
2018/06/20 Python
python+logging+yaml实现日志分割
2019/07/22 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
Python socket服务常用操作代码实例
2020/06/22 Python
python打包生成so文件的实现
2020/10/30 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
5.1手机促销活动
2014/01/17 职场文书
2014村务公开实施方案
2014/02/25 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
党员检讨书范文
2014/12/27 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
歼十出击观后感
2015/06/11 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
Python的这些库,你知道多少?
2021/06/09 Python
Python中的xlrd模块使用整理
2021/06/15 Python
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang