快速学习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 相关文章推荐
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
Dec 15 Javascript
Node.js中使用socket创建私聊和公聊聊天室
Nov 19 Javascript
js简单实现图片延迟加载的方法
Jul 19 Javascript
JavaScript奇技淫巧44招【实用】
Dec 11 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
H5实现中奖记录逐行滚动切换效果
Mar 13 Javascript
利用Vue.js实现求职在线之职位查询功能
Jul 03 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
微信小程序 网络通信实现详解
Jul 23 Javascript
javascript面向对象三大特征之多态实例详解
Jul 24 Javascript
jquery实现聊天机器人
Feb 08 jQuery
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+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
PHP中is_file()函数使用指南
2015/05/08 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
php适配器模式简单应用示例
2019/10/23 PHP
javascript 写类方式之五
2009/07/05 Javascript
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
Python易忽视知识点小结
2015/05/25 Python
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
员工晚婚的请假条
2014/02/08 职场文书
大一新生学期自我评价
2014/04/09 职场文书
安全生产计划书
2014/05/04 职场文书
优秀教师个人总结
2015/02/11 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang
MySQL数据库中varchar类型的数字比较大小的方法
2021/11/17 MySQL