快速学习jQuery插件 Form表单插件使用方法


Posted in Javascript onDecember 01, 2015

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

文章详细的介绍了Form表单插件的使用方法,希望大家认真学习,从中得到收获。

Javascript 相关文章推荐
jQuery数组处理方法汇总
Jun 20 Javascript
谈谈impress.js初步理解
Sep 09 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
Dec 25 Javascript
jQuery实现百叶窗焦点图动画效果代码分享(附源码下载)
Mar 14 Javascript
纯javascript版日历控件
Nov 24 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
Dec 08 Javascript
javascript+jQuery实现360开机时间显示效果
Nov 03 jQuery
jQuery实现滚动效果
Nov 17 jQuery
详解vue-cli 2.0配置文件(小结)
Jan 14 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
Nuxt.js 数据双向绑定的实现
Feb 17 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 #Javascript
易操作的jQuery表单提示插件
Dec 01 #Javascript
JavaScript保留关键字汇总
Dec 01 #Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
Dec 01 #Javascript
整理Javascript函数学习笔记
Dec 01 #Javascript
全面解析Bootstrap弹窗的实现方法
Dec 01 #Javascript
js获取及判断键盘按键的方法
Dec 01 #Javascript
You might like
实现树状结构的两种方法
2006/10/09 PHP
Php+SqlServer实现分页显示
2006/10/09 PHP
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
2014/05/29 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
javascript getElementsByName()的用法说明
2009/07/31 Javascript
js+css在交互上的应用
2010/07/18 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
Python读取Excel的方法实例分析
2015/07/11 Python
全面理解Python中self的用法
2016/06/04 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
2015年教师节演讲稿范文
2015/03/19 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
实现一个简单得数据响应系统
2021/11/11 Javascript