ASP编程:B/S开辟经常使用JavaScript手艺
缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。javascript在b/s开辟中常常用到的javaScript手艺1、考证类
1、数字考证内
1.1整数
1.2年夜于0的整数(用于传来的ID的考证)
1.3负整数的考证
1.4整数不克不及年夜于iMax
1.5整数不克不及小于iMin
2、工夫类
2.1短工夫,形如(13:04:06)
2.2短日期,形如(2003-12-05)
2.3长工夫,形如(2003-12-0513:04:06)
2.4只要年和月。形如(2003-05,大概2003-5)
2.5只要小时和分钟,形如(12:03)
3、表单类
3.1一切的表单的值都不克不及为空
3.2多行文本框的值不克不及为空。
3.3多行文本框的值不克不及凌驾sMaxStrleng
3.4多行文本框的值不克不及少于sMixStrleng
3.5判别单选框是不是选择。
3.6判别复选框是不是选择.
3.7复选框的全选,多选,全不选,反选
3.8文件上传过程当中判别文件范例
4、字符类
4.1判别字符全体由a-Z大概是A-Z的字字母构成
4.2判别字符由字母和数字构成。
4.3判别字符由字母和数字,下划线,点号构成.且开首的只能是下划线和字母
4.4字符串交换函数.Replace();
5、扫瞄器类
5.1判别扫瞄器的范例
5.2判别ie的版本
5.3判别客户真个分辩率
6、分离类
6.1email的判别。
6.2手机号码的考证
6.3身份证的考证
2、功效类
1、工夫与相干控件类
1.1日历
1.2工夫控件
1.3万年历
1.4显现静态显现时钟效果(文本,如OA中工夫)
1.5显现静态显现时钟效果(图象,像腕表)
2、表单类
2.1主动天生表单
2.2静态增加,修正,删除下拉框中的元素
2.3能够输出内容的下拉框
2.4多行文本框中只能输出iMax笔墨。假如多输出了,主动削减到iMax个笔墨(多用于短信发送)
3、打印类
3.1打印控件
4、事务类
4.1屏障右键
4.2屏障一切功效键
4.3-->和<--F5F11,F9,F1
4.4屏障组合键ctrl+N
5、网页计划类
5.1一连转动的笔墨,图片(注重是一连的,两段笔墨和图片中没有空缺呈现)
5.2html编纂控件类
5.3色彩拔取框控件
5.4下拉菜单
5.5两层或多条理的下拉菜单
5.6仿IE菜单的按钮。(效果如rongshuxa.com的导航栏目)
5.7形态栏,title栏的静态效果(例子良多,能够研讨一下)
5.8双击后,网页主动滚屏
6、树型布局。
6.1asp+SQL版
6.2asp+xml+sql版
6.3java+sql大概java+sql+xml
7、无边框效果的制造
8、连动下拉框手艺
9、文本排序
1、考证类
1、数字考证内
1.1整数
/^(-|+)?d+$/.test(str)
1.2年夜于0的整数(用于传来的ID的考证)
/^d+$/.test(str)
1.3负整数的考证
/^-d+$/.test(str)
2、工夫类
2.1短工夫,形如(13:04:06)
functionisTime(str)
{
vara=str.match(/^(d{1,2})(:)?(d{1,2})2(d{1,2})$/);
if(a==null){alert(输出的参数不是工夫格局);returnfalse;}
if(a>24||a>60||a>60)
{
alert("工夫格局不合错误");
returnfalse
}
returntrue;
}
2.2短日期,形如(2003-12-05)
functionstrDateTime(str)
{
varr=str.match(/^(d{1,4})(-|/)(d{1,2})2(d{1,2})$/);
if(r==null)returnfalse;
vard=newDate(r,r-1,r);
return(d.getFullYear()==r&&(d.getMonth()+1)==r&&d.getDate()==r);
}
2.3长工夫,形如(2003-12-0513:04:06)
functionstrDateTime(str)
{
varreg=/^(d{1,4})(-|/)(d{1,2})2(d{1,2})(d{1,2}):(d{1,2}):(d{1,2})$/;
varr=str.match(reg);
if(r==null)returnfalse;
vard=newDate(r,r-1,r,r,r,r);
return(d.getFullYear()==r&&(d.getMonth()+1)==r&&d.getDate()==r&&d.getHours()==r&&d.getMinutes()==r&&d.getSeconds()==r);
}
2.4只要年和月。形如(2003-05,大概2003-5)
2.5只要小时和分钟,形如(12:03)
3、表单类
3.1一切的表单的值都不克不及为空
<input>
3.2多行文本框的值不克不及为空。
3.3多行文本框的值不克不及凌驾sMaxStrleng
3.4多行文本框的值不克不及少于sMixStrleng
3.5判别单选框是不是选择。
3.6判别复选框是不是选择.
3.7复选框的全选,多选,全不选,反选
3.8文件上传过程当中判别文件范例
4、字符类
4.1判别字符全体由a-Z大概是A-Z的字字母构成
<input>
4.2判别字符由字母和数字构成。
<input>
4.3判别字符由字母和数字,下划线,点号构成.且开首的只能是下划线和字母
/^({1})(*)$/g.test(str)
4.4字符串交换函数.Replace();
5、扫瞄器类
5.1判别扫瞄器的范例
window.navigator.appName
5.2判别ie的版本
window.navigator.appVersion
5.3判别客户真个分辩率
window.screen.height;window.screen.width;
6、分离类
6.1email的判别。
functionismail(mail)
{
return(newRegExp(/^w+((-w+)|(.w+))*@+((.|-)+)*.+$/).test(mail));
}
6.2手机号码的考证
6.3身份证的考证
functionisIdCardNo(num)
{
if(isNaN(num)){alert("输出的不是数字!");returnfalse;}
varlen=num.length,re;
if(len==15)
re=newRegExp(/^(d{6})()?(d{2})(d{2})(d{2})(d{3})$/);
elseif(len==18)
re=newRegExp(/^(d{6})()?(d{4})(d{2})(d{2})(d{3})(d)$/);
else{alert("输出的数字位数不合错误!");returnfalse;}
vara=num.match(re);
if(a!=null)
{
if(len==15)
{
varD=newDate("19"+a+"/"+a+"/"+a);
varB=D.getYear()==a&&(D.getMonth()+1)==a&&D.getDate()==a;
}
else
{
varD=newDate(a+"/"+a+"/"+a);
varB=D.getFullYear()==a&&(D.getMonth()+1)==a&&D.getDate()==a;
}
if(!B){alert("输出的身份证号"+a+"里出身日期不合错误!");returnfalse;}
}
returntrue;
}
3.7复选框的全选,多选,全不选,反选
<formname=hrong>
<inputtype=checkboxname=All>全选<br/>
<inputtype=checkboxname=mm><br/>
<inputtype=checkboxname=mm><br/>
<inputtype=checkboxname=mm><br/>
<inputtype=checkboxname=mm><br/>
<inputtype=checkboxname=mm><br/><br/>
<inputtype=checkboxname=All2>全选<br/>
<inputtype=checkboxname=mm2><br/>
<inputtype=checkboxname=mm2><br/>
<inputtype=checkboxname=mm2><br/>
<inputtype=checkboxname=mm2><br/>
<inputtype=checkboxname=mm2><br/>
</form>
<SCRIPTLANGUAGE="javascript">
functioncheckAll(str)
{
vara=document.getElementsByName(str);
varn=a.length;
for(vari=0;i<n;i++)
a.checked=window.event.srcElement.checked;
}
functioncheckItem(str)
{
vare=window.event.srcElement;
varall=eval("document.hrong."+str);
if(e.checked)
{
vara=document.getElementsByName(e.name);
all.checked=true;
for(vari=0;i<a.length;i++)
{
if(!a.checked){all.checked=false;break;}
}
}
elseall.checked=false;
}
</SCRIPT>
3.8文件上传过程当中判别文件范例
<inputtype=file>
绘图:
<OBJECT
id=S
style="LEFT:0px;WIDTH:392px;TOP:0px;HEIGHT:240px"
height=240
width=392
classid="clsid:369303C2-D7AC-11D0-89D5-00A0C90833E6">
</OBJECT>
<SCRIPT>
S.DrawingSurface.ArcDegrees(0,0,0,30,50,60);
S.DrawingSurface.ArcRadians(30,0,0,30,50,60);
S.DrawingSurface.Line(10,10,100,100);
</SCRIPT>
写注册表:
<SCRIPT>
varWshShell=WScript.CreateObject("WScript.Shell");
WshShell.RegWrite("HKCUSoftwareACMEFortuneTeller",1,"REG_BINARY");
WshShell.RegWrite("HKCUSoftwareACMEFortuneTellerMindReader","Goocher!","REG_SZ");
varbKey=WshShell.RegRead("HKCUSoftwareACMEFortuneTeller");
WScript.Echo(WshShell.RegRead("HKCUSoftwareACMEFortuneTellerMindReader"));
WshShell.RegDelete("HKCUSoftwareACMEFortuneTellerMindReader");
WshShell.RegDelete("HKCUSoftwareACMEFortuneTeller");
WshShell.RegDelete("HKCUSoftwareACME");
</SCRIPT>
TABLAE相干(客户端静态增添行列)
<HTML>
<SCRIPTLANGUAGE="JScript">
functionnumberCells(){
varcount=0;
for(i=0;i<document.all.mytable.rows.length;i++){
for(j=0;j<document.all.mytable.rows(i).cells.length;j++){
document.all.mytable.rows(i).cells(j).innerText=count;
count++;
}
}
}
</SCRIPT>
<BODY>
<TABLEid=mytableborder=1>
<TR><TH></TH><TH></TH><TH></TH><TH></TH></TR>
<TR><TD></TD><TD></TD><TD></TD><TD></TD></TR>
<TR><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLE>
</BODY>
</HTML>
1.身份证严厉考证:
<script>
varaCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西躲",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"喷鼻港",82:"澳门",91:"外洋"}
functioncidInfo(sId){
variSum=0
varinfo=""
if(!/^d{17}(d|x)$/i.test(sId))returnfalse;
sId=sId.replace(/x$/i,"a");
if(aCity==null)return"Error:不法区域";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
vard=newDate(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()))return"Error:不法诞辰";
for(vari=17;i>=0;i--)iSum+=(Math.pow(2,i)%11)*parseInt(sId.charAt(17-i),11)
if(iSum%11!=1)return"Error:不法证号";
returnaCity+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}
document.write(cidInfo("380524198002300016"),"<br/>");
document.write(cidInfo("340524198002300019"),"<br/>")
document.write(cidInfo("340524197711111111"),"<br/>")
document.write(cidInfo("34052419800101001x"),"<br/>");
</script>
2.考证IP地点
<SCRIPTLANGUAGE="javascript">
functionisip(s){
varcheck=function(v){try{return(v<=255&&v>=0)}catch(x){returnfalse}};
varre=s.split(".")
return(re.length==4)?(check(re)&&check(re)&&check(re)&&check(re)):false
}
vars="202.197.78.129";
alert(isip(s))
</SCRIPT>
3.加sp1后还能用的无边框窗口!!
<HTMLXMLNS:IE>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<IE:DownloadID="include"STYLE="behavior:url(#default#download)"/>
<title>ChromelessWindow</title>
<SCRIPTLANGUAGE="JScript">
/*---SpecialThanksForandot---*/
/*
ThisfollowingcodearedesignedandwritenbyWindy_sk<seasonx@163.net>
Youcanuseitfreely,butumustheldallthecopyrightitems!
*/
/*---ThanksForandotAgain---*/
varCW_width=400;
varCW_height=300;
varCW_top=100;
varCW_left=100;
varCW_url="/";
varNew_CW=window.createPopup();
varCW_Body=New_CW.document.body;
varcontent="";
varCSStext="margin:1px;color:black;border:2pxoutset;border-style:expression(onmou搜索引擎优化ut=onmouseup=function(){this.style.borderStyle=outset},onmousedown=function(){if(event.button!=2)this.style.borderStyle=inset});background-color:buttonface;width:16px;height:14px;font-size:12px;line-height:11px;cursor:Default;";
//BuildWindow
include.startDownload(CW_url,function(source){content=source});
functioninsert_content(){
vartemp="";
CW_Body.style.overflow="hidden";
CW_Body.style.backgroundColor="white";
CW_Body.style.border="solidblack1px";
content=content.replace(/<a([^>]*)>/g,"<a$1>");
temp+="<tablewidth=100%height=100%cellpadding=0cellspacing=0border=0>";
temp+="<trstyle=;font-size:12px;background:#0099CC;height:20;cursor:defaultondblclick="Max.innerText=Max.innerText==1?2:1;parent.if_max=!parent.if_max;parent.show_CW();">";
temp+="<tdstyle=color:#ffffff;padding-left:5px>ChromelessWindowForIE6SP1</td>";
temp+="<tdstyle=color:#ffffff;padding-right:5px;align=right>";
temp+="<spanid=Helponclick="alert(ChromelessWindowForIE6SP1-Ver1.0
CodeByWindy_sk
SpecialThanksForandot)"style=""+CSStext+"font-family:System;padding-right:2px;">?</span>";
temp+="<spanid=Minstyle=""+CSStext+"font-family:Webdings;"title=Minimum>0</span>";
temp+="<spanid=Maxonclick="this.innerText=this.innerText==1?2:1;parent.if_max=!parent.if_max;parent.show_CW();"style=""+CSStext+"font-family:Webdings;"title=Maximum>1</span>";
temp+="<spanid=Closestyle=""+CSStext+"font-family:System;padding-right:2px;"title=Close>x</span>";
temp+="</td></tr><tr><tdcolspan=2>";
temp+="<divid=includestyle=overflow:scroll;overflow-x:hidden;overflow-y:auto;HEIGHT:100%;width:"+CW_width+">";
temp+=content;
temp+="</div>";
temp+="</td></tr></table>";
CW_Body.innerHTML=temp;
}
setTimeout("insert_content()",1000);
varif_max=true;
functionshow_CW(){
window.moveTo(10000,10000);
if(if_max){
New_CW.show(CW_top,CW_left,CW_width,CW_height);
if(typeof(New_CW.document.all.include)!="undefined"){
New_CW.document.all.include.style.width=CW_width;
New_CW.document.all.Max.innerText="1";
}
}else{
New_CW.show(0,0,screen.width,screen.height);
New_CW.document.all.include.style.width=screen.width;
}
}
window.onfocus=show_CW;
window.onresize=show_CW;
//MoveWindow
vardrag_x,drag_y,draging=false
functiondrag_move(e){
if(draging){
New_CW.show(e.screenX-drag_x,e.screenY-drag_y,CW_width,CW_height);
returnfalse;
}
}
functiondrag_down(e){
if(e.button==2)return;
if(New_CW.document.body.offsetWidth==screen.width&&New_CW.document.body.offsetHeight==screen.height)return;
drag_x=e.clientX;
drag_y=e.clientY;
draging=true;
e.srcElement.setCapture();
}
functiondrag_up(e){
draging=false;
e.srcElement.releaseCapture();
if(New_CW.document.body.offsetWidth==screen.width&&New_CW.document.body.offsetHeight==screen.height)return;
CW_top=e.screenX-drag_x;
CW_left=e.screenY-drag_y;
}
</SCRIPT>
</HTML>
德律风号码的考证
请求:
(1)德律风号码由数字、"("、")"和"-"组成
(2)德律风号码为3到8位
(3)假如德律风号码中包括有区号,那末区号为三位或四位
(4)区号用"("、")"或"-"和其他部分开开
(5)挪动德律风号码为11或12位,假如为12位,那末第一名为0
(6)11位挪动德律风号码的第一名和第二位为"13"
(7)12位挪动德律风号码的第二位和第三位为"13"
依据这几条划定规矩,能够与出以下正则表达式:
(^{3,4}-{3,8}$)|(^{3,8}$)|(^({3,4}){3,8}$)|(^0{0,1}13{9}$)
<scriptlanguage="javascript">
functionPhoneCheck(s){
varstr=s;
varreg=/(^{3,4}-{3,8}$)|(^{3,8}$)|(^({3,4}){3,8}$)|(^0{0,1}13{9}$)/
alert(reg.test(str));
}
</script>
<inputtype=textname="iphone">
<inputtype=buttonvalue="Check">
具有在输出非数字字符不回显的效果,即对非数字字符的输出不作反响。
functionnumbersonly(field,event){
varkey,keychar;
if(window.event){
key=window.event.keyCode;
}
elseif(event){
key=event.which;
}
else{
returntrue
}
keychar=String.fromCharCode(key);
if((key==null)||(key==0)||(key==8)||(key==9)||(key==13)||(key==27)){
returntrue;
}
elseif(("0123456789.").indexOf(keychar)>-1){
window.status="";
returntrue;
}
else{
window.status="Fieldexceptsnumbersonly";
returnfalse;
}
}
考证ip
str=document.RegExpDemo.txtIP.value;
if(/^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/.test(str)==false)
{
window.alert(毛病的IP地点格局);
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
if(RegExp.$1<1||RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
window.alert(毛病的IP地点);
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
//剔除如010.020.020.03后面的0
varstr=str.replace(/0(d)/g,"$1");
str=str.replace(/0(d)/g,"$1");
window.alert(str);
//一下是取数据的类
//Obj参数指定命据的来历(限制Table),默许第一举动字段称号行
//GetTableData类供应MoveNext办法,参数是表的行向上或向下挪动的位数,负数向下挪动,正数向上.
//GetFieldData办法取得指定的列名的数据
//Sort_desc办法对指定的列按降序分列
//Sort_asc办法对指定的列按升序分列
//GetData办法前往字段值为特定值的数据数组,供应数据,能够在内部举行其他处置
//Delete办法删除以后纪录,数组削减一行
//初始化,Obj:table的名字,Leftlen:左面过剩数据长度,Rightlen:左面过剩数据长度,
functionGetTableData(Obj,LeftLen,RightLen){
varMyObj=document.all(Obj);
variRow=MyObj.rows.length;
variLen=MyObj.rows.cells.length;
vari,j;
TableData=newArray();
for(i=0;i<iRow;i++){
TableData=newArray();
for(j=0;j<iLen;j++){
TableStr=MyObj.rows(i).cells(j).innerText;
TableStr=TableStr.substring(LeftLen,TableStr.length-RightLen).Trim();
TableStr=TableStr.replace(//gi,"").replace(/
/ig,"");
TableData=TableStr;
}
}
this.TableData=TableData;
this.cols=this.TableData.length;
this.rows=this.TableData.length;
this.rowindex=0;
}
functionmovenext(Step){
if(this.rowindex>=this.rows){
return
}
if(Step==""||typeof(Step)=="undefined"){
if(this.rowindex<this.rows-1)
this.rowindex++;
return;
}
else{
if(this.rowindex+Step<=this.rows-1&&this.rowindex+Step>=0){
this.rowindex=this.rowindex+Step;
}
else
{
if(this.rowindex+Step<0){
this.rowindex=0;
return;
}
if(this.rowindex+Step>this.rows-1){
this.rowindex=this.rows-1;
return;
}
}
}
}
functiongetfielddata(Field){
varcolindex=-1;
vari=0;
if(typeof(Field)=="number"){
colindex=Field;
}
else
{
for(i=0;i<this.cols&&this.rowindex<this.rows;i++){
if(this.TableData==Field){
colindex=i;
break;
}
}
}
if(colindex!=-1){
returnthis.TableData;
}
}
functionsort_desc(){//降序
varcolindex=-1;
varhighindex=-1;
desc_array=newArray();
vari,j;
for(n=0;n<arguments.length;n++){
Field=arguments;
for(i=0;i<this.cols;i++){
if(this.TableData==Field){
colindex=i;
break;
}
}
if(colindex==-1)
return;
else
{
desc_array=this.TableData;
for(i=1;i<this.rows;i++){
desc_array=this.TableData;
highindex=1;
for(j=1;j<this.TableData.length;j++){
if(desc_array<this.TableData){
desc_array=this.TableData;
highindex=j;
}
}
if(highindex!=-1)
this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));
}
}
this.TableData=desc_array;
}
return;
}
functionsort_asc(){//升序
varcolindex=-1;
varhighindex=-1;
vari,j;
for(n=0;n<arguments.length;n++){
asc_array=newArray();
Field=arguments;
for(i=0;i<this.cols;i++){
if(this.TableData==Field){
colindex=i;
break;
}
}
if(colindex==-1)
return;
else
{
asc_array=this.TableData;
for(i=1;i<this.rows;i++){
asc_array=this.TableData;
highindex=1;
for(j=1;j<this.TableData.length;j++){//找出最小的列值
if(asc_array>this.TableData){
asc_array=this.TableData;
highindex=j;
}
}
if(highindex!=-1)
this.TableData=this.TableData.slice(0,highindex).concat(this.TableData.slice(highindex+1,this.TableData.length));
}
}
this.TableData=asc_array;
}
return;
}
functiongetData(Field,FieldValue){
varcolindex=-1;
vari,j;
GetData=newArray();
if(typeof(Field)=="undefined"||typeof(FieldValue)=="undefined"){
returnthis.TableData;
}
for(j=0;j<this.cols;j++){
if(this.TableData==Field){
colindex=j;
}
}
if(colindex!=-1){
for(i=1;i<this.rows;i++){
if(this.TableData==FieldValue){
GetData=newArray();
GetData=this.TableData;
}
}
}
returnGetData;
}
functionDeletE(){
this.TableData=this.TableData.slice(0,this.rowindex).concat(this.TableData.slice(this.rowindex+1,this.TableData.length));
this.rows=this.TableData.length;
return;
}
functionupdateField(Field,FieldValue){
varcolindex=-1;
vari=0;
if(typeof(Field)=="number"){
colindex=Field;
}
else
{
for(i=0;i<this.cols&&this.rowindex<this.rows;i++){
if(this.TableData==Field){
colindex=i;
break;
}
}
}
if(colindex!=-1){
this.TableData=FieldValue;
}
}
functionmovefirst(){
this.rowindex=0;
}
functionmovelast(){
this.rowindex=this.rows-1;
}
functionString.prototype.Trim(){returnthis.replace(/(^s*)|(s*$)/g,"");}
GetTableData.prototype.MoveNext=movenext;
GetTableData.prototype.GetFieldData=getfielddata;
GetTableData.prototype.Sort_asc=sort_asc;
GetTableData.prototype.Sort_desc=sort_desc;
GetTableData.prototype.GetData=getData;
GetTableData.prototype.Delete=DeletE;
GetTableData.prototype.UpdateField=updateField;
GetTableData.prototype.MoveFirst=movefirst;
详细的例子:http://202.119.73.208/NetEAn/com/test/jsprint.htm
在每一个文本框的onblur事务中挪用校验代码,而且每一个文本框中onKeyDown事务中写一个enter转tab函数
//回车键换为tab
functionenterToTab()
{
if(event.srcElement.type!=button&&event.srcElement.type!=textarea
&&event.keyCode==13)
{
event.keyCode=9;
}
}
偶然候还必要自在编纂表格---
给人人一个自在编纂表格的小例子,写的有点乱,呵呵:)
//===============================start================================
<HTML>
<HEAD>
<METAhttp-equiv="Content-Type"content="text/html;charset=gb2312">
<TITLE>测试修正表格</TITLE>
<STYLE>
/*提醒层的款式*/
div
{
BORDER-RIGHT:#80c1441pxsolid;
BORDER-TOP:#80c1441pxsolid;
VISIBILITY:hidden;
BORDER-LEFT:#80c1441pxsolid;
CURSOR:default;
LINE-HEIGHT:20px;
BORDER-BOTTOM:#80c1441pxsolid;
FONT-FAMILY:宋体;
font-size:12px;
POSITION:absolute;
BACKGROUND-COLOR:#f6f6f6;
TOP:30px;
LEFT:30px;
}
/*tr的款式*/
tr
{
font-family:"宋体";
color:#000000;
background-color:#C1DBF5;
font-size:12px
}
/*table脚注款式*/
.TrFoot
{
FONT-SIZE:12px;
font-family:"宋体","Verdana","Arial";
BACKGROUND-COLOR:#6699CC;
COLOR:#FFFFFF;
height:25;
}
/*trhead属性*/
.TrHead
{
FONT-SIZE:13px;
font-family:"宋体","Verdana","Arial";
BACKGROUND-COLOR:#77AADD;
COLOR:#FFFFFF;
height:25;
}
/*文本框款式*/
INPUT
{
BORDER-COLOR:#AACEF7#AACEF7#AACEF7#AACEF7;
BORDER-RIGHT:1pxsolid;
BORDER-TOP:1pxsolid;
BORDER-LEFT:1pxsolid;
BORDER-BOTTOM:1pxsolid;
FONT-SIZE:12px;
FONT-FAMILY:"宋体","Verdana";
color:#000000;
BACKGROUND-COLOR:#E9EFF5;
}
/*button款式*/
button
{
BORDER-COLOR:#AACEF7#AACEF7#AACEF7#AACEF7;
BACKGROUND-COLOR:#D5E4F3;
CURSOR:hand;
FONT-SIZE:12px;
BORDER-RIGHT:1pxsolid;
BORDER-TOP:1pxsolid;
BORDER-LEFT:1pxsolid;
BORDER-BOTTOM:1pxsolid;
COLOR:#000000;
}
</STYLE>
</HEAD>
<BODY>
<SCRIPTlanguage="javascript">
<!--全局变量
//标记位,值为false代表未翻开一个编纂框,值为true为已翻开一个编纂框入手下手编纂
varediter_table_cell_tag=false;
//开启编纂功效标记,值为true时为同意编纂
varrun_edit_flag=false;
//-->
</SCRIPT>
<SCRIPTlanguage="javascript">
<!--
/**
*编纂表格函数
*单击某个单位格能够对内里的内容举行自在编纂
*@paratableID为要编纂的table的id
*@paranoEdiID为不要编纂的td的ID,好比说table的题目
*能够写为<TDid="no_editer">自在编纂表格</TD>
*此时该td不成编纂
*/
functionediterTableCell(tableId,noEdiId)
{
vartdObject=event.srcElement;
vartObject=((tdObject.parentNode).parentNode).parentNode;
if(tObject.id==tableId&&tdObject.id!=noEdiId&&editer_table_cell_tag==false&&run_edit_flag==true)
{
tdObject.innerHTML="<inputtype=textid=edit_table_txtname=edit_table_txtvalue="+tdObject.innerText+"size=15>";
edit_table_txt.focus();
edit_table_txt.select();
editer_table_cell_tag=true;
//修正按钮提醒信息
editTip.innerText="请先点断定按钮确认修正!";
}
else
{
returnfalse;
}
}
/**
*断定修正
*/
functioncertainEdit()
{
varbObject=event.srcElement;
vartdObject=bObject.parentNode;
vartxtObject=tdObject.firstChild;
tdObject.innerHTML=txtObject.value;
//代表编纂框已封闭
editer_table_cell_tag=false;
//修正按钮提醒信息
editTip.innerText="请单击某个单位格举行编纂!";
}
functionenterToTab()
{
if(event.srcElement.type!=button&&event.srcElement.type!=textarea
&&event.keyCode==13)
{
event.keyCode=9;
}
}
/**
*把持是不是编纂
*/
functioneditStart()
{
if(event.srcElement.value=="入手下手编纂")
{
event.srcElement.value="编纂完成";
run_edit_flag=true;
}
else
{
//假如以后没有编纂框,则编纂乐成,不然,没法提交
//必需按断定按钮后才干一般提交
if(editer_table_cell_tag==false)
{
alert("编纂乐成停止!");
event.srcElement.value="入手下手编纂";
run_edit_flag=false;
}
}
}
/**
*依据分歧的按钮供应分歧的提醒信息
*/
functionshowTip()
{
if(event.srcElement.value=="编纂完成")
{
editTip.style.top=event.y+15;
editTip.style.left=event.x+12;
editTip.style.visibility="visible";
}
else
{
editTip.style.visibility="hidden";
}
}
-->
</SCRIPT>
<TABLEid="editer_table"width="100%"align="center"
>
<TRclass="TrHead">
<TDcolspan="3"align="center"id="no_editer">自在编纂表格</TD>
</TR>
<TR>
<TDwidth="33%">单击入手下手编纂按钮,然后点击各单位格编纂</TD>
<TDwidth="33%">2</TD>
<TDwidth="33%">3</TD>
</TR>
<TR>
<TDwidth="33%">4</TD>
<TDwidth="33%">5</TD>
<TDwidth="33%">6</TD>
</TR>
<TR>
<TDwidth="33%">one</TD>
<TDwidth="33%">two</TD>
<TDwidth="33%">three</TD>
</TR>
<TR>
<TDwidth="33%">four</TD>
<TDwidth="33%">five</TD>
<TDwidth="33%">six</TD>
</TR>
<TRclass="TrFoot">
<TDcolspan="3"align="center"id="no_editer">
<INPUTtype="button"class="bt"value="入手下手编纂"onMouseMove="showTip()">
</TD>
</TR>
</TABLE>
</BODY>
<DIVid="editTip">请单击某个单位格举行编纂!</DIV>
</HTML>优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 不能只是将它停留在纸上谈兵的程度上。 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 那么,ASP.Net有哪些改进呢? 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助... ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
页:
[1]