快速学习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 相关文章推荐
获取数组中最大最小值方法js代码(自写)
Aug 12 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
Apr 23 Javascript
JS实现为排序好的字符串找出重复行的方法
Mar 02 Javascript
jQuery中事件与动画的总结分享
May 24 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
jquery实现拖动效果
Aug 10 Javascript
Js获取当前日期时间及格式化代码
Sep 17 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
Oct 27 Javascript
详解原生JS动态添加和删除类
Mar 26 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
Apr 11 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
Aug 16 Javascript
Java Varargs 可变参数用法详解
Jan 28 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
基础的WordPress插件制作教程
2015/11/24 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
JQuery toggle使用分析
2009/11/16 Javascript
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
web页面数据展示新想法(json)
2010/06/08 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
es6数值的扩展方法
2019/03/11 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
python实现得到一个给定类的虚函数
2014/09/28 Python
Python实现的简单发送邮件脚本分享
2014/11/07 Python
Python的设计模式编程入门指南
2015/04/02 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
WSDL的操作类型主要有几种
2013/07/19 面试题
公司司机岗位职责范本
2014/03/03 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
论文答谢词
2015/01/20 职场文书
怎样写辞职信
2015/02/27 职场文书
同乡会致辞
2015/07/30 职场文书
2021-4-3课程——SQL Server查询【2】
2021/04/05 SQL Server
webpack的移动端适配方案小结
2021/07/25 Javascript