一、validation插件
表單驗證:
使用方式:①引入jQuery庫和validation插件
②確定那個表單需要驗證,$(“#表單域id”).validate()
③給表單域設置驗證規則。
class=”required” 爲必須填寫,minlength=”2”爲最小長度爲2,class=”required email” 必填且符合email格式,class=”url” 爲 url格式驗證。
驗證原理:驗證失敗後,在表單域後動態創建一個class爲error的label標籤,同樣是左浮動,需要清除浮動,如果不清除浮動,label.error樣式會達不到想要的效果。
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>第一個validation插件程序</title>
<style type="text/css">
* {
font-family: verdana;
font-size: 96%;
}
label {
width: 10em;
float: left;
}
/*如果不符合驗證規則 則自動在被驗證的文本框後面加一個class屬性爲error的label
作爲提示信息 因爲上面已經設置了label爲浮動 所以自動生成的顯示提示信息的label
也是浮動的 所以效果有些問題 需要給自動生成的label修改它的float爲none
如果想控制提示信息和文本框的距離 可以設置padding-left* */
label.error {
float: none;
color: red;
padding-left: 5em;
vertical-align: top;
background-color: burlywood;
}
p {
clear: both;
}
em {
font-weight: bold;
padding-right: 1em;
vertical-align: top;
}
.submit {
margin-left: 12em;
}
</style>
<!--第一步 導入jQuery庫和validation插件-->
<script src="../../jsJava庫/jquery-1.7.2.js" type="text/javascript" charset="utf-8"></script>
<script src="../../jsJava庫/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function() {
$("#commentForm").validate();
});
</script>
</head>
<body>
<form id="commentForm" action="#" method="get">
<fieldset>
<legend>帶驗證的評論</legend>
<p>
<label for="username">姓名</label><em>*</em>
<input type="text" name="username" id="username" size="25" class="required" minlength="2" />
</p>
<p>
<label for="email">電子郵件</label><em>*</em>
<input type="text" name="email" id="email" size="25" class="required email" />
</p>
<p>
<label for="url">網址</label><em> </em>
<input type="text" name="url" id="url" size="25" class="url" />
</p>
<p>
<label for="comment">你的評論</label><em>*</em>
<textarea id="comment" name="comment" cols="22" class="required"></textarea>
</p>
<p>
<input class="submit" type="submit" value="提交" />
</p>
</fieldset>
</form>
</body>
</html>
二、metadata.js插件
metadata.js 是與 validation.js 不同的驗證方法。
兩種不同的驗證寫法
(一)class=”required” 和 minlength=”2”都寫在class裏
使用方式:①引入jQuery、validation、metadata.js,注意:validation 和 metadata 版本要配套。
②$(“表id”).validate({meta:”validate”});
③將規則寫入class,
示例:
<form id="commentForm" action="#" method="get">
<fieldset>
<legend>帶驗證的評論</legend>
<p>
<label for="username">姓名</label><em>*</em>
<input type="text" name="username" id="username" size="25" class="{validate:{required:true, minlength:2}}" />
</p>
<p>
<label for="email">電子郵件</label><em>*</em>
<input type="text" name="email" id="email" size="25" class="{validate:{required:true, email:true}}" />
</p>
<p>
<label for="url">網址</label><em> </em>
<input type="text" name="url" id="url" size="25" class="{validate:{url:true}}" />
</p>
<p>
<label for="comment">你的評論</label><em>*</em>
<textarea id="comment" name="comment" cols="22" class="{validate:{required:true}}"></textarea>
</p>
<p>
<input class="submit" type="submit" value="提交" />
</p>
</fieldset>
</form>
(二)將驗證規則和HTML結構分離
先將表單域的class屬性移除,使用jQuery修改class
$(function() {
$("#commentForm").validate({
rules:{
username:{
required:true,
minlength:2
},
email:{
required:true,
email:true
},
url:"url",
comment:"required"
}
});
});
三、驗證信息自定義(中文)
(一)國際化
使用方式:①引入jquery.validate.messages_cn.js
其它適用於上例相同,只是英文改成中文。
(二)自定義提示信息
在之前的錯誤提示位置修改代碼:required:’請輸入姓名’
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>把驗證規則都放到class中統一管理</title>
<style type="text/css">
* {
font-family: verdana;
font-size: 96%;
}
label {
width: 10em;
float: left;
}
label.error {
float: none;
color: red;
padding-left: 5em;
vertical-align: top;
}
p {
clear: both;
}
em {
font-weight: bold;
padding-right: 1em;
vertical-align: top;
}
.submit {
margin-left: 12em;
}
</style>
<!--第一步 導入jQuery庫和validation插件-->
<script src="../../jsJava庫/jquery-1.7.2.js" type="text/javascript" charset="utf-8"></script>
<script src="../../jsJava庫/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
<script src="../../jsJava庫/jquery.metadata.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function() {
$("#commentForm").validate({meta: "validate"});
});
</script>
</head>
<body>
<form id="commentForm" action="#" method="get">
<fieldset>
<legend>帶驗證的評論</legend>
<p>
<label for="username">姓名</label><em>*</em>
<input type="text" name="username" id="username" size="25"
class="{validate:{required:true, minlength:2,messages:{required:'請輸入姓名',minlength:'請至少輸入兩個字符'}}}" />
</p>
<p>
<label for="email">電子郵件</label><em>*</em>
<input type="text" name="email" id="email" size="25"
class="{validate:{required:true, email:true,messages:{required:'請輸入電子郵件',email:'請檢查電子郵件的格式'}}}" />
</p>
<p>
<label for="url">網址</label><em> </em>
<input type="text" name="url" id="url" size="25" class="{validate:{url:true,messages:{url:'請檢查網址的格式'}}}" />
</p>
<p>
<label for="comment">你的評論</label><em>*</em>
<textarea id="comment" name="comment" cols="22" class="{validate:{required:true,messages:{required:'請輸入您的評論'}}}"></textarea>
</p>
<p>
<input class="submit" type="submit" value="提交" />
</p>
</fieldset>
</form>
</body>
</html>
(三)自定義提示信息並美化
在(二)的基礎上加以美化,加上成功或失敗圖片。
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>驗證規則和HTML內容分離.html</title>
<style type="text/css">
* {
font-family: verdana;
font-size: 96%;
}
label {
width: 10em;
float: left;
}
label.error {
float: none;
color: red;
/*padding-left: 5em;*/
vertical-align: top;
background-color: yellowgreen;
background: url("../../../img/unchecked.gif") no-repeat 2px 0px;
padding-left: 18px;
}
label.success {
background: url("../../../img/checked.gif") no-repeat 2px 0px;
padding-left: 18px;
}
p {
clear: both;
}
em {
font-weight: bold;
padding-right: 1em;
vertical-align: top;
}
.submit {
margin-left: 12em;
}
</style>
<!--第一步 導入jQuery庫和validation插件-->
<script src="../../jsJava庫/jquery-1.7.2.js" type="text/javascript" charset="utf-8"></script>
<script src="../../jsJava庫/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function() {
$("#commentForm").validate({
rules: {
username: {
required: true,
minlength: 2
},
email: {
required: true,
email: true
},
url: "url",
comment: "required"
},
messages: {
username: {
required: '請輸入姓名',
minlength: '請至少輸入兩個字符'
},
email: {
required: '請輸入電子郵件',
email: '請檢查電子郵件的格式'
},
url: '請檢查網址的格式',
comment: '請輸入您的評論'
},
errorElement: "label", //可以用其他標籤,記住把樣式也對應修改
success: function(label) {
//label指向上面那個錯誤提示信息標籤em
label.text(" ") //清空錯誤提示消息
.addClass("success"); //加上自定義的success類
}
});
});
</script>
</head>
<body>
<form id="commentForm" action="#" method="get">
<fieldset>
<legend>驗證規則和HTML內容分離</legend>
<p>
<label for="username">姓名</label><em>*</em>
<input type="text" name="username" id="username" size="25" minlength="2" />
</p>
<p>
<label for="email">電子郵件</label><em>*</em>
<input type="text" name="email" id="email" size="25" />
</p>
<p>
<label for="url">網址</label><em> </em>
<input type="text" name="url" id="url" size="25" />
</p>
<p>
<label for="comment">你的評論</label><em>*</em>
<textarea id="comment" name="comment" cols="22"></textarea>
</p>
<p>
<input class="submit" type="submit" value="提交" />
</p>
</fieldset>
</form>
</body>
</html>
(四)自定義驗證規則
在頁面註冊底部,加一個類似驗證碼的內容,例:7+9=?,如果寫的是16,則驗證通過。
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>驗證規則和HTML內容分離.html</title>
<style type="text/css">
* {
font-family: verdana;
font-size: 96%;
}
label {
width: 10em;
float: left;
}
label.error {
float: none;
color: red;
/*padding-left: 5em;*/
vertical-align: top;
background-color: yellowgreen;
/*假裝此處有圖片,是個錯誤提示的圖片*/
background: url("../../../img/unchecked.gif") no-repeat 2px 0px;
padding-left: 18px;
}
label.success {
background: url("../../../img/checked.gif") no-repeat 2px 0px;
padding-left: 18px;
}
p {
clear: both;
}
em {
font-weight: bold;
padding-right: 1em;
vertical-align: top;
}
.submit {
margin-left: 12em;
}
</style>
<!--第一步 導入jQuery庫和validation插件-->
<script src="../../jsJava庫/jquery-1.7.2.js" type="text/javascript" charset="utf-8"></script>
<script src="../../jsJava庫/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function() {
//自定義一個驗證方法
$.validator.addMethod(
"formula", //驗證方法名稱
function(value, element, param) { //驗證規則
return value == eval(param);
},
'請正確輸入數學公式計算後的結果' //驗證提示信息
);
$("#commentForm").validate({
rules: {
username: {
required: true,
minlength: 2
},
email: {
required: true,
email: true
},
url: "url",
comment: "required",
valCode: {
formula: "7+9"
}
},
messages: {
username: {
required: '請輸入姓名',
minlength: '請至少輸入兩個字符'
},
email: {
required: '請輸入電子郵件',
email: '請檢查電子郵件的格式'
},
url: '請檢查網址的格式',
comment: '請輸入您的評論'
},
errorElement: "label", //可以用其他標籤,記住把樣式也對應修改
success: function(label) {
//label指向上面那個錯誤提示信息標籤em
label.text(" ") //清空錯誤提示消息
.addClass("success"); //加上自定義的success類
}
});
});
</script>
</head>
<body>
<form id="commentForm" action="#" method="get">
<fieldset>
<legend>自定義驗證規則</legend>
<p>
<label for="username">姓名</label><em>*</em>
<input type="text" name="username" id="username" size="25" minlength="2" />
</p>
<p>
<label for="email">電子郵件</label><em>*</em>
<input type="text" name="email" id="email" size="25" />
</p>
<p>
<label for="url">網址</label><em> </em>
<input type="text" name="url" id="url" size="25" />
</p>
<p>
<label for="comment">你的評論</label><em>*</em>
<textarea id="comment" name="comment" cols="22"></textarea>
</p>
<p>
<label for="valCode">驗證碼</label><em>*</em>
<input type="text" name="valCode" id="valCode" size="25" />=7+9
</p>
<p>
<input class="submit" type="submit" value="提交" />
</p>
</fieldset>
</form>
</body>
</html>
管理cookie的插件–cookie.js
Cookie是網站設計者放置在客戶端的小文本文件. 實現 存儲用戶曾經瀏覽過的產品列表,記住用戶喜歡瀏覽哪類新聞等.在用戶允許的情況下,還可以存儲用戶的登錄信息,使得用戶在訪問網站時不必每次都鍵入這些信息.
1.往cookie中存
3.刪除cookie
$.cookie(‘cookie名’,null);置爲null
以記住用戶名爲例:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>jQuery Cookie Plugin</title>
<script src="../../jsJava庫/jquery-2.1.4.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../../jsJava庫/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var COOKIE_NAME = 'username';
// alert($.cookie(COOKIE_NAME));
if( $.cookie(COOKIE_NAME) ){
$("#username").val($.cookie(COOKIE_NAME) );
}
$("#check").click(function(){
if(this.checked){
$.cookie(COOKIE_NAME, $("#username").val() , { path: '/', expires: 10 });
}else{
$.cookie(COOKIE_NAME, null, { path: '/' });
}
});
});
</script>
</head>
<body>
用戶名:<input type="text" name="username" id="username"/> <br/>
<input type="checkbox" name="check" id="check"/>記住用戶名
</body>
</html>
自定義插件
方法:①新建一個jquery.自定義插件名.js。
②語法格式:
;(function(
}(jQuery);
//或把!寫成+,!+( )的作用都是把函數轉化成表達式,立即執行。
插件裏的代碼格式(不固定):
$.fn.extend({
//json數據格式
})
示例:修改顏色的插件
;(function ($) {
$.fn.extend({
"color":function (value) {
if(value == undefined){
return this.css("color");
}else{
return this.css("color",value);
}
}
});
})(jQuery);
$.extend的作用
把當前對象的屬性提取出來,如果重複則合併或覆蓋,如果沒有就添加。
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../../jsJava庫/jquery-2.1.4.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
//合併
var $obj = $.extend({
odd:"odd", /* 偶數行樣式*/
even:"even", /* 奇數行樣式*/
},{
odd:"111",
selected:"selected"
});
console.info($obj);
});
</script>
</head>
<body>
</body>
</html>
$(“選擇器”,上下文(可以寫this));//如果不穿第二個參數,默認上下文是document,從當前整個文檔中去找,this是在當前對象下找,提高了查找效率。