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 剧场版 你必须知道的javascript
May 27 Javascript
JavaScript(js)设置默认输入焦点(focus)
Dec 28 Javascript
JSON+HTML实现国家省市联动选择效果
May 18 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
Jun 24 Javascript
Bootstrap源码解读表单(2)
Dec 22 Javascript
Angular实现跨域(搜索框的下拉列表)
Feb 16 Javascript
详解Node.js实现301、302重定向服务
Apr 07 Javascript
vue2.x+webpack快速搭建前端项目框架详解
Nov 30 Javascript
Thinkjs3新手入门之如何使用静态资源目录
Dec 06 Javascript
详解JavaScript 的变量
Mar 08 Javascript
vue路由插件之vue-route
Jun 13 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
Sep 11 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
SSI指令
2006/11/25 PHP
php 获取select下拉列表框的值
2010/05/08 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
使用vue引入maptalks地图及聚合效果的实现
2020/08/10 Javascript
详解JavaScript中的this指向问题
2021/02/05 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
浅谈python可视化包Bokeh
2018/02/07 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Pytorch之Variable的用法
2019/12/31 Python
CSS3+Sprite实现僵尸行走动画特效源码
2016/01/27 HTML / CSS
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
公司员工的自我评价范例
2013/11/01 职场文书
英文版餐饮运营管理求职信
2013/11/06 职场文书
创业计划书模版
2014/02/05 职场文书
社区活动策划方案
2014/08/21 职场文书
趣味运动会标语口号
2015/12/26 职场文书
python中的被动信息搜集
2021/04/29 Python
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python