jQuery_05 插件

一:jQuery插件是什么?

  •        从本质上说jQuery插件就是我们塞进jQuery命名空间中一个庞大的函数。通过使用别人或者自己开发好的插件,我们可以写更少的代码来实现一个想要的功能,极大的提高我们的开发效率。

  • 往类库里面去扩展方法,这类方法就是jQuery插件。

二:为什么要使用jQuery插件?

  1. 结构清晰、易于理解。各个插件之间是相互独立的,所以结构非常清晰也更容易理解。

  2. 可移植性强、重用力度大。因为插件本身就是由一系列小的功能结构组成,而且通过接口向外部提供自己的服务,所以复用力度更大,移植也更加方便

  3. 可以在软件开发的过程中修改应用程序。由于采用了插件的结构,可以在软件的开发过程中随时修改插件,也可以在应用程序发行之后,通过补丁包的形式增删插件,通过这种形式达到修改应用程序的目的。

三:jQuery中的插件有哪几种?

  • 自定义插件

  • 第三方插件

四:jQuery中的自定义插件是什么?

  • 是在jQuery命名空间内部添加一个函数

五:jQuery中的自定义插件的方法有哪些?

  •  $.extend()    实现对象继承

语法结构:

  •    $.extend(对象1,对象2)----->对象1继承对象2的属性与方法 

  •     注意:若有三个对象及以上,则第一个对象继承后面所有的对象的属性及方法 

案例:两个对象的继承

          //定义对象
        var aname = {
            name: "李白",
			//方法
            exercise: function() {
                console.log(this.name + "在喝杜康")
            }
        }
             //调用对象的定义方法
			  aname.exercise();//在console界面显示
              //李白在喝杜康
			  
			  //定义对象
           var bname = {
            name: "杜甫",
            athletics: function() {
                console.log(this.name + "在修建草屋中")
            }
        }
          //调用对象的定义方法
		  bname.athletics();//杜甫在修建草屋中
		  
		  //bname继承了aname的属性与方法
          $.extend(bname, aname); 

          console.log(bname);//object

        bname.athletics()//李白在修建草屋中
        bname.exercise()//李白在喝杜康
  • $.extend()   扩展jQuery类方法

语法结构:

  •  $.extend({

                  方法名:function(){方法体}

                      })

案例: 扩展$.max()和$.min()方法

      //求最大值(最小值)
        $.extend({
            //两数最大值
            myMax: function(a, b) {
                return a > b ? a : b
            },
            //两数最小值
            myMin: function(a, b) {
                return a < b ? a : b
            },
            //多个数的最大值
            moreMax: function(...rest) {
                var f = -Infinity //存放当前比较大的值
                for (var i of rest) { //遍历每个参数
                    f = Math.max(f, i) //比较两个数字的大小 将其中大的一个赋值给f
                }
                return f;
            }
            //1.多个数字的最小值
        })

        var a1 = $.myMax(1, 2);
        console.log(a1);//2
        var a2 = $.myMin(1, 2);
        console.log(a2);//1

        var a3 = $.moreMax(-1, -2, -3, -4);
        console.log(a3);//-1

        //Infinity 无穷大
        //-Infinity 无穷小
        console.log(-1 > -Infinity);//true
  • $.fn.extend()       扩展jQuery对象方法

   语法结构: 

  • $.fn.extend({

                  方法名:function(){方法体}

                      })

注意:多个方法之间用逗号隔开

案例:复选框的全选和取消全选功能

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>插件</title>
		<script src="js/jquery-3.5.1.js"></script>
		<script>

        //1.3 $.fn.extend()扩展jQuery对象方法
        //案例3:实现全选效果

        // 类方法
        // $.each()   相当于  DBHelper.getCon()
        // 对象方法
        // $().not()  相当于  new Date().getTime()

        //给$的对象方法做了拓展
        $.fn.extend({
            //拓展了一个名字为checkAll的方法
            checkAll: function(f) {
                $("input").prop("checked", f)
            }
        })
        
		 //调用方法
        $(function() {
            $("#all").click(function(){
                $("#all").checkAll(all.checked)
            })
        })

        /* 二、第三方插件:表单验证插件 */
        //案例4:表单验证(用户名、密码、确认密码、年龄、邮箱、网址url)
    </script>
	</head>

	<body>
		<input type="checkbox" id="all">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
		<input type="checkbox">
	</body>
</html>

六:jQuery中的第三方插件是什么?

  • 一些已经定义和封装函数方法的插件,在我们需要插件进行相关功能的操作实现,可以从外部调用,减少代码,提高编写效率

七:jQuery的插件有哪几种?

  1. jQuery表单验证插件Validation

  2. jQuery表单插件Form

  3. 动态绑定事件插件livequery

  4. 管理Cookie的插件Cookie

  5. 模态窗口插件SimpleModal

八:jQuery的插件中的表单验证插件

  •       表单验证主要是针对表单元素的值进行验证,并根据验证结果给出文字或图片提示;主要验证用户是否输入了内容或者输入的内容是否符合要求。

  • 常用的表单验证插件有:jQuery-validate、formValidator

九:jQuery-validate表单插件的作用如何?

  •         jQuery-validate插件提供了强大的表单验证功能,能够让客户端表单验证变得更简单,同时它还提供了大量的可定制化选项,以满足应用程序的各种需求。该插件捆绑了一套非常有用的验证方法,包括 URL 和电子邮件验证,同时也提供了API允许用户自定义校验方法。提供的所有捆绑方法默认使用英语作为错误信息,并且在国内外广泛使用。

十:使用插件的步骤

  • 下载jQuery插件验证库-------jquery.validate.js

  • 将类库引入页面

  • 两种方式使用验证-----HTMl标签属性方式/js方式

		<script src="js/jquery-3.5.1.js"></script>
		<!--如果要使用jquery-validation 必须先导入jquery-->
		<script src="jquery-validation-1.14.0/dist/jquery.validate.js"></script>
		<!-- 中文汉化包 -->
		<script src="jquery-validation-1.14.0/dist/localization/messages_ar.js"></script>
  • HTMl标签属性方式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>注册</title>
	<style type="text/css">
	*{padding:0; margin:0;}
	body{
		margin-top: 0px;
		margin-right: auto;
		margin-bottom: 0px;
		margin-left: auto;
		font-size:12px;
		line-height:30px;
	}
	.center{
		float:none;
		width: 763px;
		clear:both;
		margin-top: 0px;
		margin-right: auto;
		margin-bottom: 0px;
		margin-left: auto;
		border-left:solid 1px #cacaca;
		border-right:solid 1px #cacaca;
	}
	.inputs {
		border: 1px solid #333;
		width:120px;
		float:left;
	}
	.left{width:200px;
	text-align:right;
	padding-right:5px;
	}
	.red{
		color:#ff0000;
		padding-left:10px;
		font-size:12px;
		}
	</style>
	<script type="text/javascript">
		//封装ID
	function $(ElementId){
		return document.getElementById(ElementId);
		}
		//用户
	function checkUser(){
	   var user=$("user").value;	
	   var userId=$("userId");	
	   userId.innerHTML="";
	   if(user==""){
		   userId.innerHTML="用户名不能为空";
		   return false;
		}
	}	
	 //密码
	function checkPwd(){
	   var pwd=$("pwd").value;	
	   var pwdId=$("pwdId");	
	   pwdId.innerHTML="";
	   if(pwd==""){
		 pwdId.innerHTML="密码不能为空";
		 return false;
		}
		if(pwd.length<6 || pwd.value.length>12){
		 pwdId.innerHTML="密码长度为在6—12字符";
		 return false;
		}
	}
	//性别
	function checkSex(){
		var sexId=$("sexId");
		sexId.innerHTML="";
		var j=0;
	var sex=document.getElementsByName("sex");	
	for(var i=0;i<sex.length;i++){
		if(sex[i].checked==true){
			j=1;
			break;
			}
		}
	if(j==0){
		sexId.innerHTML="请选择性别";
		return false;
		}
		return true;
		}
		//出生日期
	function checkBirth(){
		var birth=$("birth").value;
		var birthId=$("birthId");
		birthId.innerHTML="";
		var year=birth.substring(0,4);
		var month=birthsubstring(5,7);
		var day=birth.substring(8,birth.length);
		var time=new Date();
		if(birth==""){
			birthId.innerHTML="请填写出生日期";
			return false;
		}
		if(birth.length<10){
			birthId.innerHTML="出生日期格式错误,例如2009-08-16";
			return false;
		}
		if(birth.charAt(4)!="-"||birth.value.charAt(7)!="-"){
				birthId.innerHTML="出生日期格式错误,例如2009-08-16";
				return false;
			}
		if(isNaN(year)||isNaN(month)||isNaN(day)){
			birthId.innerHTML="出生年月日必须是数字";
				return false;
			}
		if(year<1900 || year>time.getFullYear()){
			birthId.innerHTML="出生年份的范围在1900—"+time.getFullYear();
			return false;
			}
		if(month<1 ||month>12){
			birthId.innerHTML="您输入的月份不在1-12月之间";
			return false;
			}
		if(day<1 ||day>31){
			birthId.innerHTML="您输入的天数不在1-31之间";
			return false;
			}
		}
		 //电子邮件
	function checkEmail(){
		var mail=$("email").value;
		var emailId=$("emailId");
		emailId.innerHTML="";
		if(mail==""){//检测Email是否为空
			emailId.innerHTML="Email不能为空";
			return false;
			}
		if(mail.indexOf("@")==-1){
			emailId.innerHTML="Email格式不正确\n必须包含@";
			return false;
			}
		if(mail.indexOf(".")==-1){
			emailId.innerHTML="Email格式不正确\n必须包含.";
			return false;
			}
		}
	</script>
	</head>
	
	<body>
	<div class="center"><img src="img/header.jpg" /></div>
	<div class="center"><table width="100%" border="0" cellspacing="0" cellpadding="0">
	<form action="sucess.html" method="post" name="myform">
	  <tr>
	    <td class="left">用户名:</td>
	    <td><input id="user" type="text"  class="inputs" onblur="checkUser()"/>
	      <div id="userId" class="red"></div></td>
	  </tr>
	  <tr>
	    <td class="left">密码:</td>
	    <td><input id="pwd" type="password"  class="inputs" onblur="checkPwd()"/><div id="pwdId" class="red"></div></td>
	  </tr>
	  <tr>
	    <td class="left">性别:</td>
	    <td><div style="float:left;"><input name="sex" type="radio" value="男" />男 <input name="sex" type="radio" value="女" />女</div>
	    <div id="sexId" class="red"></div></td>
	  </tr>
	  <tr>
	    <td class="left">出生日期:</td>
	    <td><input id="birth" type="text"  class="inputs" onblur="checkBirth()"/><div id="birthId" class="red"></div></td>
	  </tr>
	  <tr>
	    <td class="left">电子邮箱地址:</td>
	    <td><input id="email" type="text"  class="inputs" onblur="checkEmail()"/><div id="emailId" class="red"></div></td>
	  </tr>
	  <tr>
	    <td>&nbsp;</td>
	    <td><input name="btn" type="submit" value="注册" onclick="return checkSex()" /> <input name="cancel" type="reset" value="清除" /></td>
	  </tr>
	  </form>  
	</table>
	</div>
	<div class="center"><img src="img/footer.jpg" /></div>
	</body>
	</html>

  • js方式

  • 验证及错误信息语法:

  •     $("表单元素").validate({

                 rules: {

                  字段验证规则

                     },

          messages:{

             字段错误信息

                }

       })

  •  验证规则

  

  • 案例:表单验证

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>插件</title>
		<script src="js/jquery-3.5.1.js"></script>
		<!--如果要使用jquery-validation 必须先导入jquery-->
		<script src="jquery-validation-1.14.0/dist/jquery.validate.js"></script>
		<!-- 中文汉化包 -->
		<script src="jquery-validation-1.14.0/dist/localization/messages_ar.js"></script>
		<script>
			$(function(){
				  //启用表单验证  validate
				  $("myForm").validate({
					//验证规则
					rules: {
		            //用户名:								
						uname :{
							  required: true, //必填字段
							  rangelength: [6, 12] //用户名字长度在6~12位
						},
						
						//密码
						upwd1 :{
							 required: true, //必填字段
							 rangelength: [6, 10] //密码长度在6~10位
						}
									
					//确认密码	
					upwd2 :{
						 equalTo: "#p1" //输入值必须与id为p1的输入值相同		
					},
										
					//邮箱					
					emal :{
						  required: true, //必填字段
						  email:true //正确格式的电子邮件
					},					
								
					//网址
					wangzhi :{
						 required: true, //必填字段
						 url:true //正确格式的网址
					},		
					
					//年龄
					uage :{
						 digits: true, //必须为整数
						 range: [18, 150] //数字要在18~150之间
					}
										
			         }    
				  })				  
			  })
		  </script>
	</head>
	<body>
		<form action="" id="myForm">
			<p>
				用户名: <input type="text" name="uname">
			</p>
			<p>
				密码: <input type="password" name="upwd1" id="p1">
			</p>
			<p>
				确认密码: <input type="password" name="upwd2" id="p2">
			</p>
			<p>
				邮箱: <input type="text" name="emal">
			</p>
			<p>
				网址: <input type="text" name="wangzhi">
			</p>
			<p>
				年龄: <input type="text" name="uage">
			</p>
			<p>
				<input type="submit">
			</p>
		</form>
	</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值