一:jQuery插件是什么?
从本质上说jQuery插件就是我们塞进jQuery命名空间中一个庞大的函数。通过使用别人或者自己开发好的插件,我们可以写更少的代码来实现一个想要的功能,极大的提高我们的开发效率。
往类库里面去扩展方法,这类方法就是jQuery插件。
二:为什么要使用jQuery插件?
结构清晰、易于理解。各个插件之间是相互独立的,所以结构非常清晰也更容易理解。
可移植性强、重用力度大。因为插件本身就是由一系列小的功能结构组成,而且通过接口向外部提供自己的服务,所以复用力度更大,移植也更加方便
可以在软件开发的过程中修改应用程序。由于采用了插件的结构,可以在软件的开发过程中随时修改插件,也可以在应用程序发行之后,通过补丁包的形式增删插件,通过这种形式达到修改应用程序的目的。
三: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的插件有哪几种?
jQuery表单验证插件Validation
jQuery表单插件Form
动态绑定事件插件livequery
管理Cookie的插件Cookie
模态窗口插件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> </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>