⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javascript模块常用函数.txt

📁 javascript学习
💻 TXT
📖 第 1 页 / 共 3 页
字号:
 
主  题:  終於爬完五座山了,散分,散技術 
作  者:  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 + -