整理了一些JS的常用方法,包括驗證啊,全選反選啊,ajax請求啊之類的,因為就是自己用的,寫的都比較簡單,就算拋磚引玉吧,喜歡的就拿去,不喜歡就拉到
Tools.min.js
/** * JS公用類庫文件 * 創建時間:2015-05-13 * 創建人:mction */ (function(){ var D = document; var W = window; var Postfix = '.php' var _Id = function(Id){return document.getElementById(Id);}; Check = { Input:function(Name,Value,Message){ var Input = $(":input[name='"+Name+"']"); if(Input.val() == Value){ Input.focus(); alert(Message); return true; } return false; }, Phone:function(Name){ /* * 聯通號段:130/131/132/155/156/185/186/145/176; * 電信號段:133/153/180/181/189/177; * 移動號段:134/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/147/178 */ var Reg = /^1(30|31|32|55|56|85|86|45|76|33|53|80|81|89|77|34|35|36|37|38|39|50|51|52|57|58|59|82|83|84|87|88|47|78)[0-9]{8}$/; var Phone = $(":input[name='"+Name+"']"); if(!Reg.test(Phone.val())){ Phone.focus(); return true; } return false; }, Email:function(Name){ var Reg = /^[a-zA-Z0-9_]+@[a-z0-9]+\.[a-z]+$/; var Email = $(":input[name='"+Name+"']"); if(!Reg.test(Email.val())){ Email.focus(); return true; } return false; }, UserName:function(UserNameMark,Message){ var Reg = /^[\d]{8}$/; var UserName = $(":input[name='"+UserNameMark+"']"); if(!Reg.test(UserName.val())){ UserName.focus(); alert(Message); return true; } return false; }, Password:function(Name){ var Reg = /^([A-Z]+)$|^([a-z]+)$|^([0-9]+)$|^([-`=\\\[\];',\.\/~!@#\$%\^&\*\(\)_+\|\{}:"<>\?]+)$|^.{0,5}$|^.{18,}$/ var Password = $(":input[name='"+Name+"']"); if(Reg.test(Password.val())){ Password.focus(); return true; }else{ return false; } } }; Member = { Login:function(){ var UserName = $(":input[name='username']"); var PassWord = $(":input[name='password']"); if(Check.UserName("username","用戶名格式不正確")){ return false; } if(Check.Input("password",'',"密碼不能為空")){ return false; } $.ajax({ url:"/User/action"+Postfix, type:"POST", data:{ request:"Login", username:UserName.val(), password:PassWord.val() }, dataType:"json", success:function(Data){ if(Data.state != 200){ alert(Data.message); return false; }else{ location.href= "/User/member"+Postfix; } } }); }, Logout:function(){ location.href = '/User/Logout'+Postfix; } }; Public = { Hi:function(){alert('hi');}, Box_All_Sel:function(Class,AllChecked){//全選反選 var Input = D.getElementsByTagName("input"); var BoxList = []; for(I =0;I<Input.length;I++){ if(Input[I].type == "checkbox" && Input[I].className == Class){ BoxList.push(Input[I]); } } if(AllChecked){ for(I in BoxList){ BoxList[I].checked = true; } }else{ for(I in BoxList){ BoxList[I].checked = BoxList[I].checked ? false : true; } } }, After:function(New,Tar){ if(typeof Tar == 'string'){ var Parent = _Id(Tar); }else{ var Parent = Tar; } if(Parent.parentNode == Parent){ Parent.parentNode.appendChild(New); }else{ Parent.parentNode.insertBefore(New,Parent.nextSibling); } }, Requests:function(O,Class){ //批量請求 //url.request.message.input.inputMessage.inputValue var Data = $("."+ Class +":checked").serialize(); if(Data == ''){ alert("您沒有選中任何項"); //alert(O.options[0].value); O.value = O.options[0].value; return; } var TempArr = O.value.split('.'); if(!TempArr[0] || !TempArr[1]){ //驗證URL及動作 alert("錯誤:缺少必須參數"); O.value = O.options[0].value; return; } Data += "&request=" + TempArr[1]; var Message = "確認刪除選中項嗎?"; if(TempArr[2]){ //驗證並設置提示消息 Message = TempArr[2]; } if(confirm(Message)){ var Input = false; if(TempArr[3]){ //驗證並設置是否接收用戶輸入 Input = true; } if(Input == 'True'){ var InputVal = prompt(TempArr[4],TempArr[5]); Data += "&input=" + InputVal; } $.ajax({ url:"./"+TempArr[0]+Postfix, type:'GET', data:Data, dataType:'json', async:false, success:function(Data){ alert(Data.message); location.reload(true); } }); } }, Request : {//單次請求 Data : '', MetHod : '', DataType : '', Async : '', SetData:function(Options,MetHod,DataType,Async){ this.Data = Options; this.MetHod = typeof MetHod == 'undefined' ? 'GET' : MetHod; this.DataType = typeof DataType == 'undefined' ? 'json' : DataType; this.Async = typeof Async == 'undefined' ? true : Async; return this; }, Send:function(Url,Call,IM,Message){ if(!Message){ Message = "確認刪除嗎?"; } if(typeof Call != 'function'){ Call = function(Data){ switch(this.dataType){ case 'text' :alert(Data);break; default :alert(Data.message);break } location.reload(true); } } var CF = true; var CFM = true; var LId; if(typeof IM != 'undefined' && IM == false){CF = false} if(CF && !confirm(Message)){CFM = false;} if(CFM){ $.ajax({ url:Url, type:this.MetHod, data:this.Data, dataType:this.DataType, async:this.Async, beforeSend:function(O){LId = Public.Loading.Open("正在處理中");}, success:Call, error:function(E,Info,EO){alert(E.statusText + ":" + E.responseText);}, complete:function(O){Public.Loading.Close(LId);} }); } } }, Desc : { DescId : '', Display:function(O,Message){ var Id = parseInt(Math.random() * 1000); this.DescId = Id; var Desc = D.createElement('description'); Desc.id = Id; Desc.innerHTML = Message; Desc.style.width = "200px"; Desc.style.border = "1px solid #dfdfdf"; Desc.style.backgroundColor = "#fff"; Desc.style.lineHeight = "normal"; Desc.style.position = "absolute"; Desc.style.top = O.offsetTop + 'px'; Desc.style.marginLeft = "5px"; Public.After(Desc,O); O.setAttribute("onblur",'Public.Desc.Close()'); }, Close:function(){ $("#"+this.DescId).remove(); } }, Options : { File_Input:function(Obj){//添加文件選擇框 var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; var ObjName = ''; for (var i = 0; i < 5; i++) { ObjName += chars.charAt(Math.floor(Math.random() * chars.length)); } var InputFile = D.createElement("input"); InputFile.type = "file"; InputFile.name = ObjName; InputFile.accept = "image/*"; var A = D.createElement("a"); A.href = "javascript:;"; A.style.marginLeft = "300px"; A.innerHTML = "刪除"; A.setAttribute("onclick",'$("div").remove("#'+ObjName+'")'); var Div = D.createElement("div"); Div.id = ObjName; Div.style.padding = "5px"; Div.style.borderBottom = "1px solid #cccccc"; Public.After(Div,Obj); _Id(ObjName).appendChild(InputFile); _Id(ObjName).appendChild(A); } }, Loading : { WindowId:'', Open:function(Message){ var Id = parseInt(Math.random() * 1000); this.WindowId = Id; var Div = D.createElement("div"); Div.id = Id; Div.style.width = "80%"; Div.style.height = "50px"; Div.style.backgroundColor = "#000"; Div.style.opacity = "0.5"; Div.style.borderRadius = "10px"; Div.style.position = "fixed"; Div.style.top = (W.innerHeight - 50) / 2 + "px"; Div.style.left = "10%"; var P = D.createElement("p"); P.style.textAlign = "center"; P.style.color = "#fff"; P.style.lineHeight = "50px"; P.style.height = "50px"; var Img = D.createElement('img'); Img.src = "/phps/Public/images/loading.gif"; Img.style.marginBottom = "-5px"; if(Message){ P.innerHTML = Message; }else{ P.innerHTML = "正在處理中"; } P.appendChild(Img); D.getElementsByTagName("body")[0].appendChild(Div); _Id(this.WindowId).appendChild(P); return Id; }, Close:function(Id){ if(typeof Id != 'undefined' && Id != null){ D.getElementsByTagName("body")[0].removeChild(_Id(Id)); }else if(this.WindowId != ''){ D.getElementsByTagName("body")[0].removeChild(_Id(this.WindowId)); } } }, Tabs : { TabsNum : 1, TabListId : '', WindowId : '', New_Tabs:function(TabListId,WindowId,OpenUrl,PageTitle){ this.TabListId = TabListId; this.WindowId = WindowId; var IframeList = _Id(WindowId).getElementsByTagName("iframe"); //alert(Iframe.length); for(I = 0;I < IframeList.length;I ++){ IframeList[I].style.display = "none"; } var TabList = _Id(TabListId).getElementsByTagName("li"); //alert(TabList); for(I = 0;I < TabList.length;I ++){ TabList[I].className = ""; } var Iframe = D.createElement("iframe"); Iframe.id = "IFR"+this.TabsNum; Iframe.src = OpenUrl; Iframe.frameborder = 0; Iframe.width = "100%"; Iframe.height = "100%"; var A = D.createElement("a"); A.href = "javascript:;"; A.id = "IFA"+this.TabsNum; A.innerHTML = PageTitle; A.setAttribute("data-if",Iframe.id); A.setAttribute("onclick","Public.Tabs.View(this)"); var Li = D.createElement("li"); Li.id = "IFL"+this.TabsNum; Li.className = "on"; Li.setAttribute("data-if",Iframe.id); var Close = D.createElement("a"); Close.href = "javascript:;"; Close.innerHTML = " x "; Close.setAttribute("data-li",Li.id); Close.setAttribute("data-if",Iframe.id); Close.setAttribute("onclick","Public.Tabs.Close(this)"); this.TabsNum++; _Id(TabListId).appendChild(Li); _Id(Li.id).appendChild(A); _Id(Li.id).appendChild(Close); _Id(WindowId).appendChild(Iframe); }, View:function(O){ var IframeList = _Id(this.WindowId).getElementsByTagName("iframe"); for(I = 0;I < IframeList.length;I ++){ IframeList[I].style.display = "none"; } var TabList = _Id(this.TabListId).getElementsByTagName("li"); for(I = 0;I < TabList.length;I ++){ TabList[I].className = ""; } O.parentNode.className = "on"; _Id(O.getAttribute('data-if')).style.display = "block"; }, Close:function(O){ var LiO = _Id(O.getAttribute("data-li")); var IFO = _Id(O.getAttribute("data-if")); if(LiO.nextElementSibling){ var DisPlayLi = LiO.nextElementSibling; }else{ var TabList = _Id(this.TabListId).getElementsByTagName("li"); var DisPlayLi = TabList[TabList.length - 2]; } if(IFO.nextElementSibling){ var DisPlayIF = IFO.nextElementSibling; }else{ var IfList = _Id(this.WindowId).getElementsByTagName("iframe"); var DisPlayIF = _Id(IfList[IfList.length - 2].id); } LiO.parentNode.removeChild(LiO); IFO.parentNode.removeChild(IFO); DisPlayLi.className = "on"; DisPlayIF.style.display = "block"; } } }; })();
這些是JAVASCRIPT的基本知識,如果是新手的話,我覺得這些不夠你們學習,你可以去找些資料完整的學習下JAVASCRIPT。
這些對於已經有一些JAVASCRIPT基礎的朋友,可以先浏覽下這些知識,或許其中有你已經遺忘的或者遺漏的,回憶下JAVASCRIPT對你後面繼續深入學下AJAX有很大的幫助。