jQuery Form插件使用详解_动力节点Java学院整理


Posted in jQuery onJuly 17, 2017

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

下载地址: http://malsup.com/jquery/form/#download
核心方法 -- 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; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery Validate 校验多个相同name的方法
May 18 jQuery
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
jQuery上传插件webupload使用方法
Aug 01 jQuery
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
jquery获取img的src值实例介绍
Jan 16 jQuery
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
基于jQuery实现可编辑的表格
Dec 11 jQuery
jQuery实现移动端下拉展现新的内容回弹动画
Jun 24 jQuery
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
jQuery列表检索功能实现代码
Jul 17 #jQuery
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
Jul 17 #jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 #jQuery
JQuery EasyUI的一些常用组件
Jul 12 #jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 #jQuery
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 #jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 #jQuery
You might like
PHP和XSS跨站攻击的防范
2007/04/17 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
vue中监听返回键问题
2019/08/28 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
决心书范文
2014/03/11 职场文书
安全施工责任书
2014/08/25 职场文书
新郎结婚保证书
2015/02/26 职场文书
机器人瓦力观后感
2015/06/12 职场文书
签字仪式主持词
2015/07/03 职场文书
大学班干部竞选稿
2015/11/20 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android