快速学习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 相关文章推荐
List Installed Hot Fixes
Jun 12 Javascript
看了就知道什么是JSON
Dec 09 Javascript
jquery异步跨域访问代码
Jun 28 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
Aug 11 Javascript
JS组件系列之Bootstrap Icon图标选择组件
Jan 28 Javascript
jQuery插件formValidator实现表单验证
May 23 Javascript
jquery中关于bind()方法的使用技巧分享
Mar 30 jQuery
vue生成随机验证码的示例代码
Sep 29 Javascript
解决vue 按钮多次点击重复提交数据问题
May 10 Javascript
JS实现checkbox互斥(单选)功能示例
May 04 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
vue2.x数组劫持原理的实现
Apr 19 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
跟我学Laravel之安装Laravel
2014/10/15 PHP
详解php比较操作符的安全问题
2015/12/03 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
laravel5创建service provider和facade的方法详解
2016/07/26 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
Python中的zip函数使用示例
2015/01/29 Python
python如何通过protobuf实现rpc
2016/03/06 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
tensorflow识别自己手写数字
2018/03/14 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
Python列表list操作相关知识小结
2020/01/29 Python
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
经营理念标语
2014/06/21 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
基层党建工作简报
2015/07/21 职场文书
Go 语言中 20 个占位符的整理
2021/10/16 Golang
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android