📄 javascript模块常用函数.txt
字号:
主 题: 終於爬完五座山了,散分,散技術
作 者: liuzxit (八爪魚)
等 级:
信 誉 值: 120
所属论坛: Web 开发 JavaScript
问题点数: 200
回复次数: 43
发表时间: 2003-7-21 16:20:58
有星星,開心,我也散散分過過癮
公司的考試死定了,鬱悶,散分當散心
我們經常對提交數據進行一些有效行檢測,為避免重復的無聊的工作,現在我寫好一個模塊,大家隨便擴展吧
========chkData.htm==========
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="javascript" src="chkData.js"></script>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="" name="form1">
<table>
<tr><td>
不得為空:<INPUT TYPE="text" NAME="data"><br/>
必須為日期型:<INPUT TYPE="text" NAME="emp_date"><br/>
標准E_mail﹕<INPUT TYPE="text" NAME="EMail"><br/>
全部英文﹕<INPUT TYPE="text" NAME="English"><br/>
輸入數字﹕<INPUT TYPE="text" NAME="Number"><br/>
輸入英文或數字或.﹕<INPUT TYPE="text" NAME="en"><br/>
輸入中文﹕<INPUT TYPE="text" NAME="onlyCh"><br/>
不得輸入中文﹕<INPUT TYPE="text" NAME="notCh"><br/>
<INPUT TYPE="submit" value="提交">
</td></tr></table>
</FORM>
</BODY>
</HTML>
<SCRIPT LANGUAGE="JavaScript">
var obj=new chkForm("form1")
obj.isPass("data","isZero");
obj.isPass("data","isNumeric");
obj.isPass("emp_date","isDate");
obj.isPass("EMail","isEmail","請輸入標准格式e_mail﹐請改正");
obj.isPass("English","isEnglish");
obj.isPass("Number","isNumeric");
obj.isPass("en","isEN");
obj.isPass("onlyCh","isChinese");
obj.isPass("notCh","isNoChinese");
</SCRIPT>
==============chkData.js=============
function String.prototype.trim(){return this.replace(/(^\s*)|(\s*$)/g, "");}
function isDate(s,msg){
if (s.value.length==0)return true;
if (!msg)msg='不存在該日期﹐請改正';
var str=s.value
var reg = /^(\d{4})(-|\/)(0?[1-9]|1[0-2])(-|\/)(0?[1-9]|[12][0-9]|3[01])$/g;
var r = reg.exec(str);
if(r==null){alert(msg);s.select();return false;}
var d = new Date(r[1], r[3]-1,r[5]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
var reg=/(\/|-)(0*)( *)([1-9])/g
var t=s.value.replace(reg,'$1$4')
if (newStr==t){return true;}
s.focus();
s.select();
alert(msg);
return false;
}
function isEmail(s,msg){
if (s.value.length==0)return true;
var reg = /^([a-z]){1,}([\.a-z0-9_\-]){1,}([a-z0-9]){1,}@([a-z0-9_-]){3,}(\.([a-z0-9]){2,4}){1,2}$/gi;
if (reg.test(s.value))return true;
else {
alert((msg?msg:'請輸入標准格式E_mail'));
s.focus();
s.select()
return false;
}
}
function isEnglish(s,msg){
var reg=/^[a-z]*$/gi
if(reg.test(s.value))return true
else {
alert((msg?msg:'該欄只能輸入英文﹐請改正'));
s.focus();
s.select();
return false;
}
}
function isChinese(s,msg){
var reg = /[^\u4E00-\u9FA5]/g;
if (reg.test(s.value)){
s.focus();
s.select()
alert((msg?msg:'該欄只能輸入中文﹐請改正'));
return false;
}
return true;
}
function isNoChinese(s,msg){
var reg = /[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/gi;
if (reg.test(s.value)){s.select()
alert((msg?msg:'該欄不能輸入中文及全角符號﹐請改正'));
return false;
}
return true;
}
function isZero(s,msg){
var str=s.value.trim();
if (str.length!=0)return true
else {
alert((msg?msg:'該欄不能為空﹐請改正'));
s.focus();
s.select();
return false;
}
}
function isNumeric(s,msg){
if (s.value*1!=s.value){
alert((msg?msg:'該欄為只能輸入數字﹐請改正'))
s.focus();
s.select()
return false
}
return true
}
function isEN(s,msg){
var reg=/^[a-z0-9.]*$/gi
if(reg.test(s.value))return true
else {
alert((msg?msg:'該欄只能輸入英文和數字﹐請改正'));
s.focus();
s.select();
return false;
}
}
function chkForm(frmName){
this.frmName=frmName;
this.chkFunBody = "";
this.isPass = function(eleName,chkFun,strMsg){
this.chkFunBody += chkFun+"("+this.frmName+"."+eleName
if(strMsg)this.chkFunBody +=",\""+strMsg+"\""
this.chkFunBody +=") && "
var tmp = "return( "+ this.chkFunBody +" true)"
eval(this.frmName+".onsubmit=Function('"+tmp+"');");
}
}
回复人: liuzxit(八爪魚) ( ) 信誉:120 2003-7-21 16:24:42 得分:0
無限層樹狀,無數的版本,我也蹭蹭熱鬧,裡面的圖片自己搞定(18X18的gif,合攏.BigHe.gif,打開.BigKai.gif,明細(沒子目錄)details.gif)
<Script Language="JavaScript">
//Name﹕無限層樹狀
//Design:LiuZXIT
//OverTime:2003/3/19
//Note:在IE5.i上測試通過
var strStyle='<style type="text/css">'
strStyle+='span.SelectIng{color:#ff00ff;border:solid 1pt #666666;padding:0.5pt;height:4px;background-color:#cccccc;}'
strStyle+='span.NoSelect{color:#000084;border:solid 1pt #ffffff;padding:0.5pt;height:4px;background-color:#ffffff;}'
strStyle+='span.SelectEd{color:#D02090;border:solid 1pt #888888;padding:0.5pt;height:4px;background-color:#f3f3f3;}'
strStyle+='</style>'
document.write(strStyle)
var imgOpen='bigkai.gif',imgClose='bighe.gif',imgDetail='details.gif';
var myRs=new Array(), selectItem;
function compare(a,b) {return parseInt(a[1]) - parseInt(b[1])}
function InsertItem(s){myRs[myRs.length++] = s.split(/,/);}
function iniImages(asImgOpen,asImgClose,asImgDetail){ //初始化圖片文件名
if(asImgOpen != null)imgOpen=asImgOpen;
if(asImgClose != null)imgClose=asImgClose;
if(asImgDetail != null)imgDetail=asImgDetail;
}
function ExCloAll(n){
var d=document.all('0'), e=d.all.tags('div')
for (i=0;i<e.length;i++)e[i].style.display=(n==1?'block':'none')
e=d.all.tags('p')
for (i=0;i<e.length;i++){if(ChkExist(e[i].children[1].value))e[i].children[0].src=(n==1?imgOpen:imgClose)}
}
function ExCloItem(){ //點擊文字時觸發
var c,e=event.srcElement, p=e.parentElement.children
if(e.myHref!=null){
alert((e.myTarget!=null?e.myTarget:'window')+'.location='+e.myHref) //要改成連接到某頁只需把alert改成eval即可
}
else{window.status='no href'};
if(selectItem!=null)selectItem.className='NoSelect';
e.className='SelectEd'
selectItem=event.srcElement;
c=document.all(e.value)
if(c.tagName=='P')return
p[0].src=(p[0].src.indexOf(imgClose)==-1?imgClose:imgOpen)
c.style.display=(c.style.display=='none'?'block':'none')
}
function ExCloItem2(){ //點擊圖片時觸發
var c,e=event.srcElement, p=e.parentElement.children
if(c=document.all(p[1].value)){
if(e.src.indexOf(imgDetail)==-1)e.src=(e.src.indexOf(imgClose)==-1?imgClose:imgOpen)
if(e.parentElement.id==null || e.parentElement.id=="")c.style.display=(c.style.display=='block'?'none':'block')
}else{if(e.src.indexOf(imgDetail)==-1)e.src=imgClose;}
}
function OutItem(){
var e=event.srcElement
if(selectItem != '')e.className=(selectItem==e?'SelectEd':'NoSelect')
else e.className='NoSelect'
}
function ChkExist(n){
n=parseInt(n)
if((n<myRs[0][1])||(n>myRs[myRs.length-1][1]))return false
var a,b,c,x=0, y=parseInt(myRs.length/2), z=myRs.length-1
while((x!=y)&&(y!=z)){
a=myRs[x][1], b=myRs[y][1], c=myRs[z][1]
if(n==a||n==b||n==c)return true
if(n>b)x=y;
else z=y;y=parseInt(x+z);
y=parseInt((x+z)/2);
}
return false
}
function getParent(n){
var strRs= "",k=0;
for (var i=0; i < myRs.length; i++) strRs += ";"+myRs[i].join(",");
k=strRs.indexOf(n);
if(k==-1)return -1
strRs=strRs.substring(k + n.length + 1);
strRs=strRs.substring(0,strRs.indexOf(','));
return strRs
}
function addItem(s){
if(s==null)return;
var arrItem = s.split(/,/),objParent,strHtml="",strP,arrRs=new Array();
if(document.all(arrItem[0])!=null){
alert('相同ID節點已存在,無法加入')
return false
}
if(document.all(arrItem[1])==null){
alert('指定ID節點不存在,無法加入')
return false
}
objParent=document.all(arrItem[1]);
if(!ChkExist(arrItem[1])){ //如果指向的是一個detail
for (var i=0; i < myRs.length; i++){
if(eval('/^'+arrItem[0]+',/').test(myRs[i].join(","))){
arrRs=myRs[i];
break;
}
}
strHtml+='<div id="'+arrItem[1]+'" style="font:10pt;cursor:hand;position:relative;left:20;display:block;">';
strHtml+='<p id="'+arrItem[0]+'" style="margin:0pt;"><img style="vertical-align:top;" onclick="ExCloItem2()" src="'+imgDetail+'"><span onclick="ExCloItem()"'+(arrItem.length>3?' myHref="'+arrItem[3]+'"':'')+(arrItem.length>4?' myTarget="' + arrItem[4]+'"':'') +' value="'+arrItem[0]+'" class="NoSelect" onmouseout="OutItem()" onmouseover="this.className=\'SelectIng\'">'+arrItem[2]+'</span></p></div>'
objParent.children[0].src=imgOpen;
objParent.id=null;
objParent.outerHTML+=strHtml;
}else{ //指向的是一個文件夾
strHtml+='<p id="'+arrItem[0]+'" style="margin:0pt;"><img style="vertical-align:top;" onclick="ExCloItem2()" src="'+imgDetail+'"><span onclick="ExCloItem()"'+(arrItem.length>3?' myHref="'+arrItem[3]+'"':'')+(arrItem.length>4?' myTarget="' + arrItem[4]+'"':'') +' value="'+arrItem[0]+'" class="NoSelect" onmouseout="OutItem()" onmouseover="this.className=\'SelectIng\'">'+arrItem[2]+'</span></p>'
objParent.innerHTML+=strHtml;
}
objParent=document.all(arrItem[1]);
myRs[myRs.length++] = arrItem;
myRs.sort(compare);
arrItem=null;
}
function deleteItem(){
if(selectItem==null)return false;
n=parseInt(selectItem.value)
var a,b,c,x=0, y=parseInt(myRs.length/2), z=myRs.length-1
while((x!=y)&&(y!=z)){
a=myRs[x][1], b=myRs[y][1], c=myRs[z][1]
if(n==a){myRs=myRs.slice(0,x).concat(myRs.slice(x+1));break;}
if(n==b){myRs=myRs.slice(0,y).concat(myRs.slice(y+1));break;}
if(n==c){myRs=myRs.slice(0,z).concat(myRs.slice(z+1));break;}
if(n>b)x=y;
else z=y;y=parseInt(x+z);
y=parseInt((x+z)/2);
}
var objSon=document.all(selectItem.value);
var objP=selectItem.parentElement;
var objDiv=objP.parentElement;
if(objSon.tagName=="DIV")objSon.outerHTML='';
objP.outerHTML='';
if(objDiv.innerHTML==''){
var arrChild=objDiv.parentElement.children;
for(var i=0;i<arrChild.length;i++){
if(arrChild[i]==objDiv){
var strId=objDiv.id;
objDiv.id='';
arrChild[i-1].id=strId;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -