Form 插件简介

JQuery Form 插件是一个优秀的Ajax表单插件。它有两个核心方法 ajaxForm()和ajaxSubmit(),还包括一些方法: formToArray()、formSerialize()、fieldSerialize()、filedValue()、clearForm()、clearForm()、clearFields()和resetForm()等。

JQuery Form 表单插件的下载地址为:http://jquery.malsup.com/form/#download

一个例子

ajaxForm()方法

$("#myForm").ajaxForm(function(){$("#output1").html("提交成功!欢迎下次再来").show();
});

ajaxSubmit()方法

$("#myForm").submit(function(){$(this).ajaxSubmit(function(){$("#output1").html("提交成功!欢迎下次再来!").show();});return false;//阻止表单默认提交
});

特点:通过调用ajaxSubmit()方法来响应 用户的提交表单操作,从而使表单的提交方式由传统的提交方式转变为Ajax提交方式 。
通过Form插件的这两个核心方法都 可以在不修改表单的HTML代码结构的情况下,轻易地将表单的提交方式升级为Ajax提交方式。

参数

ajaxForm()方法和ajaxSubmit()方法都能接受0个或者1个参数。当为单个参数时,该参数既可以是一个回调函数,也可以是一个options对象。
首先定义一个对象options,然后在对象里设置参数

var options = {target:'output1',//把服务器返回的内容放入id为output1的元素中beforeSubmit:showRequest//提交前的回调函数success:showResponse//提交后的回调函数url:url //默认是form的action,如果申明,则会覆盖type:type //默认是form的method('get' or 'post'),如果申明,则会覆盖dataType:null //'xml','script',or'json' (接受服务端返回的类型)clearForm:true//成功提交后,清除所有 表单元素的值resetForm:true//成功提交后,重置所有表单元素的值timeout:3000//限制请求的时间,当请求大于3秒后,跳出请求
}

定义玩options对象后,就可以把options对象传递给ajaxForm()方法

$("#myForm").ajaxForm(options);

或者传递给ajaxSubmit()方法,jQuery代码如下:

$("#myForm").submit(function(){$(this).ajaxSubmit(options);return false;
});

两个回调函数,beforeSubmit :showRequest和success:showResponse
提交前的回调函数的代码如下:

function showRequest(formData,jqForm,options){
var queryString=$.param(formData);
return true;
}

这个回调函数有3个参数

第一个参数formdata数组对象,在这里是有$.param()方法把它转化为字符串:

    name=1&address=2;

第二个参数jqForm是一个jQuery对象,它封装了表单的元素。把它转化为DOM对象即可访问jqForm的DOM元素。

    var formElement =jqForm[0];var address = formElement.address.value;

第三个options就是options对象。前面已经声明了options对象里的一些属性,其他没有声明的,则会使用默认的属性。

在这个回调函数中,只要不返回false,表单都将被允许提交;如果返回fasle,则会阻止表单提交。可以利用这个特性,在表单 提交之前验证数据,如果不符合验证规则,则阻止表单提交。

success 提交后的回调函数

function showResponse(responseText,statusText,xhr,$form){alert('状态'+statusText+'\n 返回的内容是:\n'+responseText);
}

success 有4个responseText,statusText,xhr和$form。其中responseText 和statusText2个比较常用。
statusText只是一个返回状态,例如success、error等。
responseText携带着服务器返回的数据内容。responseText会根据设置的options对象中的dataType属性来返回相应的内容。
1、对于缺省的HTML返回,回调函数的第一个参数是XMLHttpRequest对象的responText属性
2、当dataType属性被设置为xml时,回调函数的第1个参数是XMLHttpRequest对象的responseXML属性。

$("#xmlForm").ajaxForm({dataType:'xml',success:processXml
});
function processxml(responseXML){var name=$('name',responseXML).text();var address=$('address',responseXML).text();$('#xmlOut').html(name+" "+address);
}

3、当dataType属性被设置为json时,回调函数的第1个参数是从服务器返回的json数据对象。例如声明服务器返回的数据的类型为json,然后以json方式解析数据,代码如下

$('#myForm').ajaxForm({dataType:'json',success:processJson
});
function processJson(data){$('#jsonOut').html(data.name+" "+data.address);
}

表单提交之前验证表单

大多数情况下,需要在表单提交前对表单元素的值进行一次验证,如果不符合验证规则,则阻止表单提交。beforeSubmit会在表单提交前被调用。如果beforeSubmit返回false,则会阻止表单提交,利用这个特性,就可以完成表单验证表单元素的任务。
首先,定义一个validate回调函数

beforeSubmit:valite

然后编写validate函数,它有3个参数:

function validate(formData,jqForm,options){/*在这里需要对表单元素进行验证,如果不符合规则,将返回 falsel来阻止表单提交,直至符合规则为止*/var queryString =$.param(formData);return true;
}

获取表单元素的值,对表单元素进行验证。Form插件获取表单数据的方式有多种

  • 方式1 :利用参数formData
    function validate(formData,jqForm,options){for(var i=0;i<formData.length;i++){if(!formData[i].value){alert('用户名,地址和自我介绍都不能为空!');return false;} }var queryString =$.param(formData);return true;}
  • 方式2:利用参数jqForm
 function validate(formData,jqForm,options){var form =jqForm[0];if(!form.name.value||form.address.value){alert('用户名和地址不能为空,自我介绍可以为空!');return false;}var queryString =$.param(formData);return true;        }
  • 方法3:利用fieldValue()方法
function validate(formData ,jqForm,options)
{var usernameValue = $('input[name=name]').fieldValue();var addressValue=$("input[name=address]").fieldValue();if(!usernameValue[0]||!addressValue[0]){alert('用户名和地址不能为空,自我介绍可以为空!');return false;}var queryString =$.param(formData);//组装数据return true;
}

JQuery表单插件Form相关推荐

  1. jQuery 表单插件 -- Form

    1.Form 插件简介 jQuery Form 插件是一个优秀的 Ajax 表单插件,可以非常容易地.无侵入地升级 HTML 表单以支持 Ajax. jQuery Form 有两个核心方法 --- a ...

  2. 对 Jquery 表单插件 Form.js 2.12 的调整

    Form插件,支持Ajax,支持Ajax文件上传,功能强大,基本满足日常应用, 但在使用过程中,发现以下两点不足,并进行了调整,在此分享给大家 1.对属性:beforeSubmit 进行调整 原版js ...

  3. jQuery Form Plugin (jquery表单插件)

    jQuery表单插件 jQuery.form 这是一个全面支持表单的jQuery插件,支持文件上传,包含以下一些方法: -ajaxForm -ajaxSubmit - formToArray - fo ...

  4. 表单插件——form

    表单插件--form 通过表单form插件,调用ajaxForm()方法,实现ajax方式向服务器提交表单数据,并通过方法中的options对象获取服务器返回数据,调用格式如下: $(form). a ...

  5. 30 个最好的jQuery表单插件

    jQuery 的出现为我们的开发工作带来了极大的便利,而众多的基于jQuery插件的出现就犹如我们在 Firefox 中安装名目繁多的插件一样而乐此不疲,今天带给大家的是精心挑选的这30个最好的jQu ...

  6. Jquery表单插件ajaxForm用法详解

    原文地址: http://www.open-open.com/lib/view/open1325032463827.html 插件主要的方法: ajaxForm ajaxSubmit formToAr ...

  7. 12个方便易用的jquery表单验证插件

    绝大部分网站都是开放注册的,而注册就需要使用表单验证,因为网站都需要对注册用户的信息安全性和合理性做出判断,表单的注册都应该具备完善的验证方式,比如注册使用的手机号是否是真实的?用户填写的验证码是否正 ...

  8. contactform7 ajax,Contact Form 7 最强大的wordpress表单插件

    10年前 (2011-09-02) | 54,093 views | 54 条评论 | 本文共2961个字 朗读这篇文章 不得不介绍一下这款插件Contact Form 7,真的是很强大,在还没用上C ...

  9. Form表单插件jquery.form.js

    jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地.无侵入地升级HTML表单以支持Ajax. jQuery Form有两个核心方法 -- ajaxForm() 和 ajaxSubm ...

最新文章

  1. Linux下ps查找进程用kill终止命令
  2. 函数失败返回_为什么句柄返回值不一致?
  3. 手动抽油机_察雅县抽油机钢丝绳橡胶皮带生产厂家
  4. android中AndroidManifest.xml 的解析 (转)
  5. python3基础学习(双色球随机生成器)
  6. UVa 11078 - Open Credit System
  7. python爬虫电影资源_python爬虫批量获取最新电影资源
  8. ubuntu dos转linux命令行,Ubuntu下代替dos2unix命令
  9. 配置交叉编译工具链和环境变量
  10. 数字图像直方图匹配或规定化Histogram Matching (Specification)处理
  11. flashfxp使用图文教程,flashfxp使用图文教程简单介绍
  12. 阿里云智能编码插件,更Cosy的开发体验
  13. Arturia Buchla Easel V for Mac - Buchla音乐画架插件
  14. PythonOCC基础使用:基础建模指令(重要)
  15. Web全栈~25.文件
  16. Java中“||”与“|”的区别【JAVA基础】
  17. 一招教你如何搜索国内各大网盘资源
  18. [附源码]Node.js计算机毕业设计餐厅订餐系统Express
  19. jython-installer-2.7.1下载安装
  20. 【调剂】2022年武汉大学印刷与包装系刘菊华人工智能课题组诚招计算机调剂研究生...

热门文章

  1. Twitter的like动画安卓版 - 备选方案
  2. SpringBoot系列:Spring Boot定时任务Spring Schedule,springboot视频教程迅雷
  3. CAP原理(CAP THEOREM)
  4. Apache与Weblogic的整合
  5. Python移动自动化测试面试(一)
  6. ccf-bdci 互联网金融新实体发现9st 赛题基础收获总结
  7. IIT_CS480_Assignments_Week2_Participation
  8. 为什么说没有物联网,就没有 AI
  9. android nfc 命令,带有APDU命令的Android NFC问题
  10. Swift 3 中的新特性