飘灵儿 发表于 2015-1-16 22:43:38

ASP网页编程之JavaScript在ASP中完成掩码文本框

对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,在网页中输日期、工夫、IP地点等必要必定的格局限定,不然将会程序将会很难和程序相同。
  比来在做一个程序恰好必要用到此方面,在网上找到过响应的程序,但用起来都十分恶,因而乎只好本人完成一个了。  起首完成两个函数用来操纵光标:

  //失掉一个文本框控件确当前光标地位
  functiongetPos(obj)
  {
  obj.focus();
  varworkRange=document.selection.createRange();
  obj.select();
  varallRange=document.selection.createRange();
  workRange.setEndPoint("StartToStart",allRange);
  varlen=workRange.text.length;
  workRange.collapse(false);
  workRange.select();
  returnlen;
  }

  //设置一个文本框控件确当前光标地位
  functionsetCursor(obj,num){
  range=obj.createTextRange();
  range.collapse(true);
  range.moveStart(character,num);
  range.select();
  }
  次要函数完成的次要头脑是当键盘按下时举行一些操纵,我计划在onKeyDown事务中。
  在onKeyDown中,起首将体系默许的键盘处置屏障失落
  //封住传统处置
  window.event.returnValue=false;
  然后处置响应必要处置的键盘动静。
  这里任意处置几个需要的就能够了,由于文本框自己也不必要甚么太多的用户操纵,以是把光标的前移、后移、删除操纵举行处置,如许你的文本框就有了基础的操纵,如今操纵起来已很随手了。
  //自行处置按钮
  switch(nKeyCode)
  {
  case8://假如举措是退格[<-]
  {
  strText=strText.substr(0,nCursorPos-1)+strText.substr(nCursorPos,nTextLen-nCursorPos);
  nCursorPos--;
  break;
  }
  case46://假如举措是del
  {
  strText=strText.substr(0,nCursorPos)+strText.substr(nCursorPos+1,nTextLen-nCursorPos-1);
  nCursorPos--;
  break;
  }
  case38://假如举措是偏向键[上]
  case39://假如举措是偏向键[右]
  {
  nCursorPos++;
  break;
  }
  case37://假如举措是偏向键[左]
  case40://假如举措是偏向键[下]
  {
  nCursorPos--;
  break;
  }
  default:
  {
  strText=strText.substr(0,nCursorPos)+String.fromCharCode(nKeyCode)+strText.substr(nCursorPos,nTextLen);
  nCursorPos++;
  if(nCursorPos>strText.length)
  {
  nCursorPos=strText.length;
  }
  break;
  }
  }

  别的的任何动静都当增加一个字符,可见不成见的字符,都将增加并光标今后走一下。见上方的default处置部分。
  然后判别掩码是不是准确,假如准确,那末此次输出正当,将值显现增加到文本框中。
  if(strText.match(expMask))
  {
  //输出格局准确
  objTextBox.value=strText;
  }
  最初将光标移到得当的地位。
  
  //挪动光标
  setCursor(objTextBox,nCursorPos);
  完成!
  其次要就是把体系的键盘动静交换成本人的处置,屏障失落体系的,如许就能够取得最年夜的操控。
  云云就完成了一个对指定的正则表达式举行格局限定的TEXTBOX就出生了。
  附完全代码:

  //依据指定正表达式,来把持OBJ暗示
  functionmask(objTextBox,mask)
  {
  //掩码
  expMask=newRegExp(mask);
  //以后文本框中的文本
  varstrText=objTextBox.value;
  //文本长度
  varnTextLen=strText.length;
  //以后光标地位
  varnCursorPos=getPos(objTextBox);
  //按下的键码
  varnKeyCode=window.event.keyCode;
  if(nKeyCode>95)nKeyCode-=(95-47);
  //封住传统处置
  window.event.returnValue=false;


//自行处置按钮
  switch(nKeyCode)
  {
  case8://假如举措是退格[<-]
  {
  strText=strText.substr(0,nCursorPos-1)+strText.substr(nCursorPos,nTextLen-nCursorPos);
  nCursorPos--;
  break;
  }
  case46://假如举措是del
  {
  strText=strText.substr(0,nCursorPos)+strText.substr(nCursorPos+1,nTextLen-nCursorPos-1);
  nCursorPos--;
  break;
  }
  case38://假如举措是偏向键[上]
  case39://假如举措是偏向键[右]
  {
  nCursorPos++;
  break;
  }
  case37://假如举措是偏向键[左]
  case40://假如举措是偏向键[下]
  {
  nCursorPos--;
  break;
  }
  default:
  {
  strText=strText.substr(0,nCursorPos)+String.fromCharCode(nKeyCode)+strText.substr(nCursorPos,nTextLen);
  nCursorPos++;
  if(nCursorPos>strText.length)
  {
  nCursorPos=strText.length;
  }
  break;
  }
  }
  if(strText.match(expMask))
  {
  //输出格局准确
  objTextBox.value=strText;
  }
  //挪动光标
  setCursor(objTextBox,nCursorPos);
  }
  //失掉一个文本框控件确当前光标地位
  functiongetPos(obj)
  {
  obj.focus();
  varworkRange=document.selection.createRange();
  obj.select();
  varallRange=document.selection.createRange();
  workRange.setEndPoint("StartToStart",allRange);
  varlen=workRange.text.length;
  workRange.collapse(false);
  workRange.select();
  returnlen;
  }
  //设置一个文本框控件确当前光标地位
  functionsetCursor(obj,num){
  range=obj.createTextRange();
  range.collapse(true);
  range.moveStart(character,num);
  range.select();
  }


  利用办法:
  1.设置默许的、不定的格局初值。如:日期工夫的格局初值为“//::”,暗示(年/月/日时:分:秒)。IP的为“...”(192.168.0.1)。实在就是设置一个不会违背正则表达式的字符就能够。
  2.在表单的TEXT框的onKeyDown事务中挪用mask函数,参数objTextBox是指定的文本框的name。参数mask是正则表达式格局的掩码。
  例子:
  要利用日期工夫型的掩码框

  <inputname="i_etmend"type="text"id="i_etmend"value="{I_ETMEND}"maxlength="19">
  要利用IP掩码框

  <inputname="i_bip"type="text"id="i_bip"value="{I_BIP}"maxlength="15">


我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。

简单生活 发表于 2015-1-17 07:37:25

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

山那边是海 发表于 2015-1-20 14:52:28

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:

乐观 发表于 2015-1-29 11:00:08

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

若天明 发表于 2015-2-6 00:27:26

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

只想知道 发表于 2015-2-14 15:50:13

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write

灵魂腐蚀 发表于 2015-3-4 07:42:42

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

因胸联盟 发表于 2015-3-11 17:57:14

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

第二个灵魂 发表于 2015-3-19 05:30:13

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

蒙在股里 发表于 2015-3-27 08:13:59

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
页: [1]
查看完整版本: ASP网页编程之JavaScript在ASP中完成掩码文本框