基于jQuery通过jQuery.form.js插件使用ajax提交form表单


Posted in Javascript onAugust 17, 2015

我们在提交表单的时候,如果没有使用ajax提交,页面都会自己刷新一下,显得非常的不友好,所以我们需要把我们的表单提交修改为ajax的模式,可以让用户清楚地知道他们在提交表单的时候处在哪一个阶段:正在提交?提交成功?

我简单使用了一下,jQuery Form插件有一下优点:

1.支持提交前验证.

2.支持提交后回调.

3.采用AJAX方式,有很好的用户体验

4.提交方式是灵活.只要指定要提交的form ID即可.想提交那个form.就可提交那个.同时提交参数可配置.

5.支持提交多种类型数据.如:xml,json等.

主要的函数:

1.ajaxForm

增加所有需要的事件监听器,为AJAX提交表单做好准备。ajaxForm不能提交表单。在document的ready函数中,使用ajaxForm来为AJAX提交表单进行准备。ajaxForm接受0个或1个参数。这个单个的参数既可以是一个回调函数,也可以是一个Options对象。

实例:

$('#myFormId').ajaxForm();

2.ajaxSubmit

马上由AJAX来提交表单。大多数情况下,都是调用ajaxSubmit来对用户提交表单进行响应。ajaxSubmit接受0个或1个参数。这个单个的参数既可以是一个回调函数,也可以是一个Options对象。

实例:

// 绑定表单提交事件处理器
$('#myFormId').submit(function() {
// 提交表单
$(this).ajaxSubmit();
// 为了防止普通浏览器进行表单提交和产生页面导航(<span style="color: #333333;"><a href="http://www.100sucai.com/web/jquerytexiao/huandengpian" target="_blank"><span style="color: #333333;">防止页面刷新</span></a></span>?)返回false
return false;
});

3.formSerialize

将表单串行化(或序列化)成一个查询字符串。这个方法将返回以下格式的字符串:name1=value1&name2=value2。这个方法返回一个字符串。

实例:

var queryString = $('#myFormId').formSerialize();
// 现在可以使用$.get、$.post、$.ajax等来提交数据
$.post('myscript.php', queryString);

4.fieldSerialize

将表单的字段元素串行化(或序列化)成一个查询字符串。当只有部分表单字段需要进行串行化(或序列化)时,这个就方便了。这个方法将返回以下格式的字符串:name1=value1&name2=value2。这个方法返回一个字符串。

实例:

var queryString = $('#myFormId .specialFields').fieldSerialize();

5.fieldValue

返回匹配插入数组中的表单元素值。从0.91版起,该方法将总是以数组的形式返回数据。如果元素值被判定可能无效,则数组为空,否则它将包含一个或多于一个的元素值。该方法返回数组。

实例:

// 取得密码输入值
var value = $('#myFormId :password').fieldValue(); 
alert('The password is: ' + value[0]);

6.resetForm

通过调用表单元素原有的DOM方法,将表单恢复到初始状态。
实例:

$('#myFormId').resetForm();

7.clearForm

清除表单元素。该方法将所有的文本(text)输入字段、密码(password)输入字段和文本区域(textarea)字段置空,清除任何select元素中的选定,以及将所有的单选(radio)按钮和多选(checkbox)按钮重置为非选定状态。

实例:

$('#myFormId').clearForm();

8.clearFields

清除字段元素。只有部分表单元素需要清除时才方便使用。

实例:

$('#myFormId .specialFields').clearFields();

jQuery Form插件的简单示例:

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>My Jquery</title>
  <script type="text/javascript" src="<%=request.getContextPath()%>/jslib/jquery-1.4.2.js"></script>
  <script type="text/javascript" src="<%=request.getContextPath()%>/jslib/jquery.form.js"></script>
  <script type="text/javascript"> 
  // wait for the DOM to be loaded
    $(document).ready(function() { 
     // bind 'myForm' and provide a simple callback function
      $('#myForm').ajaxForm(function() { 
        alert("Thank you for your comment!"); 
      }); 
    }); 
    // attach handler to form's submit event 
    $('#myFormId').submit(function() {   
     // submit the form   
     $(this).ajaxSubmit();   
     // return false to prevent normal browser submit and page navigation   
     return false; 
    });
  </script>
</head>
<body>
  <form id="myForm" action="index.jsp" method="post">
  Name: <input type="text" name="name" />
  Comment:<textarea name="comment"></textarea>
  <input type="submit" value="Submit Comment" />
  </form>
</body>
</html>

通过本文详细介绍了jQuery通过jQuery.form.js插件使用ajax提交form表单,希望大家喜欢。

Javascript 相关文章推荐
网站上面有这种切换效果
Jun 26 Javascript
JavaScript 核心参考教程 内置对象
Oct 13 Javascript
jQuery中click事件用法实例
Dec 26 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
Jun 10 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
Aug 28 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
Nov 18 Javascript
详解Javascript中new()到底做了些什么?
Mar 29 Javascript
JS实现深度优先搜索求解两点间最短路径
Jan 17 Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 Javascript
vue 判断元素内容是否超过宽度的方式
Jul 29 Javascript
JS实现炫酷雪花飘落效果
Aug 19 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
Aug 17 #Javascript
D3.js中data(), enter() 和 exit()的问题详解
Aug 17 #Javascript
关于js里的this关键字的理解
Aug 17 #Javascript
Nginx上传文件全部缓存解决方案
Aug 17 #Javascript
jQuery幻灯片带缩略图轮播效果代码分享
Aug 17 #Javascript
javascript中 try catch用法
Aug 16 #Javascript
javascript中undefined与null的区别
Aug 16 #Javascript
You might like
PHP的PDO操作简单示例
2016/03/30 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
异步加载script的代码
2011/01/12 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
使用angular写一个hello world
2015/01/23 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
十分钟带你快速了解React16新特性
2017/11/10 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
在Django中创建动态视图的教程
2015/07/15 Python
Python端口扫描简单程序
2016/11/10 Python
python2.7安装图文教程
2018/03/13 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
python虚拟环境迁移方法
2019/01/03 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
常见的软件开发流程有哪些
2015/11/14 面试题
建筑结构施工专业推荐信
2014/02/21 职场文书
聘用意向书范本
2014/04/01 职场文书
检举信的格式及范文
2014/04/04 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
JavaScript实现登录窗体
2021/06/22 Javascript