jQuery Form插件使用详解_动力节点Java学院整理


Posted in jQuery onJuly 17, 2017

jQuery Form插件是一个优秀的Ajax表单插件,可以非常容易地、无侵入地升级HTML表单以支持Ajax。jQuery Form有两个核心方法 -- ajaxForm() 和 ajaxSubmit(), 它们集合了从控制表单元素到决定如何管理提交进程的功能。另外,插件还包括其他的一些方法: formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields() 和 resetForm()等。

下载地址: http://malsup.com/jquery/form/#download
核心方法 -- ajaxForm() 和 ajaxSubmit()

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

通过Form插件的两个核心方法,都可以在不修改表单的HTML代码结构的情况下,轻易地将表单的提交方式升级为Ajax提交方式ajaxForm() 和 ajaxSubmit() 都能接受0个或1个参数,当为单个参数时,该参数既可以是一个回调函数,也可以是一个options对象,上面的例子就是回调函数,下面介绍options对象,使得它们对表单拥有更多的控制权

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

function showRequest(formData, jqForm, options){ 
 //formData: 数组对象,提交表单时,Form插件会以Ajax方式自动提交这些数据,格式如:[{name:user,value:val },{name:pwd,value:pwd}] 
 //jqForm: jQuery对象,封装了表单的元素  
 //options: options对象 
 var queryString = $.param(formData); //name=1&address=2 
 var formElement = jqForm[0];    //将jqForm转换为DOM对象 
 var address = formElement.address.value; //访问jqForm的DOM元素 
 return true; //只要不返回false,表单都会提交,在这里可以对表单元素进行验证 
}; 
 
function showResponse(responseText, statusText){ 
 //dataType=xml 
 var name = $('name', responseXML).text(); 
 var address = $('address', responseXML).text(); 
 $("#xmlout").html(name + " " + address); 
 //dataType=json 
 $("#jsonout").html(data.name + " " + data.address); 
}; 

$("#myForm").ajaxForm(options); 
 
$("#myForm2").submit(funtion(){ 
 $(this).ajaxSubmit(options); 
 return false; //阻止表单默认提交 
});

表单提交之前进行验证:  beforeSubmit会在表单提交前被调用,如果beforeSubmit返回false,则会阻止表单提交

beforeSubmit: validate 
function validate(formData, jqForm, options) { //在这里对表单进行验证,如果不符合规则,将返回false来阻止表单提交,直到符合规则为止 
 //方式一:利用formData参数 
 for (var i=0; i < formData.length; i++) { 
  if (!formData[i].value) { 
   alert('用户名,地址和自我介绍都不能为空!'); 
   return false; 
  } 
 } 
 
 //方式二:利用jqForm对象 
 var form = jqForm[0]; //把表单转化为dom对象 
  if (!form.name.value || !form.address.value) { 
   alert('用户名和地址不能为空,自我介绍可以为空!'); 
   return false; 
  } 

 //方式三:利用fieldValue()方法,fieldValue 是表单插件的一个方法,它能找出表单中的元素的值,返回一个集合。 
 var usernameValue = $('input[name=name]').fieldValue(); 
 var addressValue = $('input[name=address]').fieldValue(); 
 if (!usernameValue[0] || !addressValue[0]) { 
  alert('用户名和地址不能为空,自我介绍可以为空!'); 
 return false; 
 } 

 var queryString = $.param(formData); //组装数据 
 //alert(queryString); //类似 : name=1&add=2 
 return true; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
Mar 25 jQuery
jQuery实现百度登录框的动态切换效果
Apr 21 jQuery
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
详解jquery选择器的原理
Aug 01 jQuery
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
jQuery中内容过滤器简单用法示例
Mar 31 jQuery
jQuery实现的简单获取索引功能示例
Jun 04 jQuery
JS与jQuery判断文本框还剩多少字符可以输入的方法
Sep 01 jQuery
jQuery实现左右两个列表框的内容相互移动功能示例
Jan 27 jQuery
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
jQuery列表检索功能实现代码
Jul 17 #jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 #jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 #jQuery
JQuery EasyUI的一些常用组件
Jul 12 #jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 #jQuery
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 #jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 #jQuery
You might like
php基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
深入php self与$this的详解
2013/06/08 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
PDO::errorCode讲解
2019/01/28 PHP
可输入的下拉框
2006/06/19 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
js css自定义分页效果
2017/02/24 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
JS实现数组去重,显示重复元素及个数的方法示例
2019/01/21 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
python爬取拉勾网职位数据的方法
2018/01/24 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Python实现Restful API的例子
2019/08/31 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
Django框架安装及项目创建过程解析
2020/09/14 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
大龄毕业生求职别忘职业规划
2014/03/11 职场文书