一般情况下其实提交表单我们将数据$("form").serialize()序列化之后用$.ajax$.post就可以实现,但是jQuery自带的方法仅支持异步提交数据,但不支持文件上传,除非我们自己用XMLHttpRequest写一个方法。
好在jquery.form.js自己实现了一套ajax的方法,支持异步文件上传并获取响应结果,这才是我使用jQuery.form的主要原因。
当然,小文件你也可以将其base64序列化,以字符串方式回传服务器,而不使用这个插件


介绍

jQuery Form插件能够让我们非常方便的实现form表单的AJAX异步提交,并且可以完全自定义提交的数据!

官网:http://plugins.jquery.com/form/
github:https://github.com/malsup/form
文档:http://jquery.malsup.com/form/


使用

1、引用JS

  1. <script src="./jquery.js"></script>
  2. <script src="./jquery.form.js"></script>

2、声明表单

  1. <formid="myForm"action="comment.php"method="post">
  2. Name: <inputtype="text"name="name"/>
  3. Comment: <textareaname="comment"></textarea>
  4. <inputtype="submit"value="Submit Comment"/>
  5. </form>

3、ajax提交

  1. $(document).ready(function(){
  2. // bind 'myForm' and provide a simple callback function
  3. $('#myForm').ajaxForm(function(){
  4. alert("Thank you for your comment!");
  5. });
  6. });

API说明

ajaxForm

并不会提交Form,在document的ready函数中通过给指定form添加事件监听使其成为AJAX异步表单。

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

ajaxSubmit

立即通过AJAX提交表单,一般是用来替换绑定表单的提交事件

  1. //绑定submit事件
  2. $('#myFormId').submit(function(){
  3. //异步提交
  4. $(this).ajaxSubmit();
  5. // return false 用来阻止浏览器的提交与跳转
  6. returnfalse;
  7. });

fieldSerialize

和$.serialize大同小异,序列化表单数据

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

resetForm

将表单恢复到初始状态。

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

clearForm

清除表单元素。该方法将所有的text、password、textarea置空,清除select元素中的选定,以及所有radio按钮和checkbox按钮重置为非选定状态。

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

clearFields

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

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

参数示例

var options = {
data: { key1: 'value1', key2: 'value2' }, //连同表单一起提交的额外数据
target: '#output1', // 把服务器返回的内容放入id为output的元素中
beforeSerialize: function($form, options) {
// return false to cancel submit
},
beforeSubmit: showRequest, // pre-submit callback
success: showResponse, // post-submit callback
error: function(){},//在错误中调用的回调函数。 //other available options:
url: url //默认是form的action,如果申明,则会覆盖
type: type // 默认值是form的method("GET" or "POST"),如果声明,则会覆盖
dataType: null // null(默认)、xml、script、json接受服务器端返回的类型
clearForm: true // 成功提交后,清除所有表单元素的值
resetForm: true // 成功提交后,重置所有表单元素的值 //超时时间
timeout: 3000
}; // pre-submit callback
function showRequest(formData, jqForm, options) {
// The array of form data takes the following form:
// [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
// formData is an array; here we use $.param to convert it to a string to display it
// but the form plugin does this for you automatically when it submits the data
var queryString = $.param(formData); // jqForm is a jQuery object encapsulating the form element. To access the
// DOM element for the form do this:
// var formElement = jqForm[0]; alert('About to submit: \n\n' + queryString); // here we could return false to prevent the form from being submitted;
// returning anything other than false will allow the form submit to continue
return true;
} // post-submit callback
function showResponse(responseText, statusText, xhr, $form) {
// for normal html responses, the first argument to the success callback
// is the XMLHttpRequest object's responseText property // if the ajaxForm method was passed an Options Object with the dataType
// property set to 'xml' then the first argument to the success callback
// is the XMLHttpRequest object's responseXML property // if the ajaxForm method was passed an Options Object with the dataType
// property set to 'json' then the first argument to the success callback
// is the json data object returned by the server alert('status: ' + statusText + '\n\nresponseText: \n' + responseText +
'\n\nThe output div should have already been updated with the responseText.');
}

jQuery.form开发手记的更多相关文章

  1. jquery ajax 开发手记

    1.json解析的格式要求更严格了,必须全部加引号,否则无法识别 {"result":"false"} 2.ashx如果要使用Session需要继承接口IReq ...

  2. jQuery.Flot开发手记

    目录 介绍 使用 自定义参数 自定义图例 自定义坐标 自定义数据序列 自定义网格 其他 鼠标停留在图表节点时显示tooltip 介绍 项目地址:http://www.flotcharts.org/ A ...

  3. jQuery MiniUI 开发指南+API组件参考手册

    jQuery MiniUI 开发指南 本文档将逐步的讲解jQuery MiniUI的方方面面,从此您将踏上jQuery MiniUI的深入探索之旅.                 1.Hello M ...

  4. 使用Ajax以及Jquery.form异步上传图片

    一.前言 之前做图片上传一直用的第三方插件,Uploadify  这个应该是用的比較多的,相同也用过别的,在方便了自己的同一时候也非常赞叹人家的功能. 思来想去,仅仅会用别的人东西,始终自己学到的少, ...

  5. 使用jQuery.form库中ajaxSubmit提交表单时遇到的一些问题

    初入前端,网上找的很多资料都不够详细,导致遇到很多问题,现记录如下: 1.首先引入 <script src="~/Scripts/jquery-1.10.2.js">& ...

  6. 关于jQuery Form Plugin使用心得

    吐槽一下先 好久没开发了,今天遇到一个客户form提交的问题,想把form提交从同步变成ajax的异步方式,在网页接受返回来的数据,使用的是jquery from插件,于是网上搜了一圈,博客园,csd ...

  7. 怎么利用jquery.form 提交form

    说明:开发环境 vs2012 asp.net mvc c# 利用jQuery.form.js提交form 1.HTML前端代码 <%@ Page Language="C#" ...

  8. [转]Nodejs开发框架Express4.x开发手记

    Express: ?web application framework for?Node.js? Express 是一个简洁.灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮 ...

  9. jQuery为开发插件提拱了两个方法:jQuery.fn.extend(); jQuery.extend();

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype ...

随机推荐

  1. Eclipse中连接数据库错误:com.microsoft.sqlserver.jdbc.SQLServerException: 之类的错误

    原创 错误:org.apache.jasper.JasperException: Unable to compile class for JSP 原因是页面指令中 import="java. ...

  2. Android ActionBar仿微信界面

    ActionBar仿微信界面 1.学习了别人的两篇关于ActionBar博客,在结合别人的文章来仿造一下微信的界面: 思路如下:1).利用ActionBar生成界面的头部,在用ActionBar的Ac ...

  3. JavaScript中function 之return false的理解(实例代码)

    1.司空见惯代码,在某一dom节点上注册事件方法 $("#btnResponse").click(Login); $("#txtCode").keydown(R ...

  4. Mysql初识数据库《三》数据库概述

    1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中描述一个事物 ...

  5. react中使用echarts(人物关系图)

    项目中有时会用到echarts,可能不同的框架中语法稍有变通,前几天在react项目中遇到,写此篇以作记录. 不同的charts语法跟支持不同,本篇"echarts": " ...

  6. JavaScript随机数组(数组、随机、取整、取值的过程)

      <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...

  7. 如何安装memcached

    软件的下载,好像从官网上只能下载未经编译的源码,需要自己编译后才能安装使用,不熟悉的用户还是直接百度搜索下载比较好,这里也提供一个下载地址给大家参考. www.newasp.net/soft/6373 ...

  8. 深入 Nginx:我们是如何为性能和规模做设计的

    NGINX 在网络应用中表现超群,在于其独特的设计.许多网络或应用服务器大都是基于线程或者进程的简单框架,NGINX突出的地方就在于其成熟的事件驱动框架,它能应对现代硬件上成千上万的并发连接. NGI ...

  9. vs引入资源

    把资源放在程序目录中,然后点击显示所有文件,然后在资源上右键“包括在项目中”

  10. 题解 CF948A 【Protect Sheep】

    题目链接 额..这道题亮点在: $you$ $do$ $not$ $need$ $to$ $minimize$ $their$ $number.$ 所以说嘛... 直接判断狼的四周有没有紧挨着的羊,没 ...