快速学习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 相关文章推荐
javascript 选择文件夹对话框(web)
Jul 07 Javascript
js select常用操作控制代码
Mar 16 Javascript
jQuery获取浏览器中的分辨率实现代码
Apr 23 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
Nov 21 Javascript
jQuery实现的文字hover颜色渐变效果实例
Feb 20 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
jQuery实现验证码功能
Mar 17 Javascript
深入解析js轮播插件核心代码的实现过程
Apr 14 Javascript
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
vue中typescript装饰器的使用方法超实用教程
Jun 17 Javascript
vue 实现通过vuex 存储值 在不同界面使用
Nov 11 Javascript
原生js实现无缝轮播图
Jan 11 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
php注入实例
2006/10/09 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
2015/11/11 PHP
php简单统计在线人数的方法
2016/05/10 PHP
微信支付开发订单查询实例
2016/07/12 PHP
PHP生成及获取JSON文件的方法
2016/08/23 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
python中Flask框架简单入门实例
2015/03/21 Python
python图像处理之镜像实现方法
2015/05/30 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
django的csrf实现过程详解
2019/07/26 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
python3实现飞机大战
2020/11/29 Python
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
教师年终个人自我评价
2013/10/04 职场文书
服务中心夜班服务员岗位职责
2013/11/27 职场文书
学校运动会报道稿
2014/09/23 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
2016大学军训心得体会
2016/01/11 职场文书
广告策划的实习心得体会总结!
2019/07/22 职场文书
字节飞书面试promise.all实现示例
2022/06/16 Javascript
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL