Javascript在ASP页面中实现掩码文本框效果代码。

最近,制定一个计划只需要应用于这方面。在互联网上已经找到了相应的程序,但它们都是非常邪恶的,所以必须自己实现。
首先,实现了两个操作游标的函数:
复制代码代码如下所示:
获取文本框控件的当前光标位置
功能率(obj)
{
Obj.focus();
VaR的工作范围= document.selection.createrange();
obj.select();
无功allrange = document.selection.createrange();
workrange.setendpoint(starttostart
VaR len = workrange.text.length;
workrange.collapse(假);
workrange.select();
返回伦;
}
当前光标位置设置文本框控件。
功能设置灯光(obj,努姆){
obj.createtextrange范围=();
Range.collapse(真的);
Range.moveStart(字符、努姆);
Range.select();
}

主函数的主要思想是做一些操作时,按下键盘,我的设计在onkeydown事件。
在按下一个键,系统默认的键盘处理第一屏蔽
复制代码代码如下所示:
传统的加工/密封
window.event.returnvalue = false;

然后处理需要处理的相应键盘消息。
这里只需要几个必要的处理就可以了,因为文本框本身不需要太多的用户操作,所以把光标向前和向后删除处理,这样你的文本框就会有基本的操作,现在操作起来很流畅。
复制代码代码如下所示:
按钮到
开关(nkeycode)
{
案例8: / /如果动作是{有}退格
{
strtext = strtext.substr(0,ncursorpos-1)+ strtext.substr(ncursorpos,nTextLen ncursorpos);
ncursorpos --;
打破;
}
案例46:如果动作是del }
{
strtext = strtext.substr(0,ncursorpos)+ strtext.substr(ncursorpos + 1,ntextlen-ncursorpos-1);
ncursorpos --;
打破;
}
案例38:如果动作是方向键{ }
案例39:如果动作是方向键{ }
{
ncursorpos + +;
打破;
}
案例37:如果动作是方向键{左}
案例40:如果动作是方向键{下面}
{
ncursorpos --;
打破;
}
违约:
{
strtext = strtext.substr(0,ncursorpos)+ string.fromcharcode(nkeycode)+ strtext.substr(ncursorpos,nTextLen);
ncursorpos + +;
如果(ncursorpos > strtext。长度)
{
ncursorpos = strtext.length;
}
打破;
}
}

任何其他消息都添加了一个字符,即不可见字符,将被添加,光标返回。
然后判断掩码是否正确,如果正确,则输入是合法的,并将值显示添加到文本框中。
复制代码代码如下所示:
如果(strtext.match(expmask))
{
正确的输入格式
objtextbox.value = strtext;
}
最后,将光标移动到适当位置。
U3000 U3000
移动光标
设置鼠标指针(objtextbox,ncursorpos);

完成它!
它主要是将系统的键盘信息替换成自己的处理方式,屏蔽系统,从而获得最大的控制权。
这样,一个文本框,完成了一个格式限制到指定的正则表达式是天生的。
U3000 U3000
复制代码代码如下所示:
根据指定的 /阳性表达,控制对象说
功能的面膜(objtextbox,面具)
{
{掩码}
expmask = new RegExp(面具);
文本框中的文本
无功strtext = objtextbox.value;
文本长度
VaR strtext.length nTextLen =;
当前光标位置
无功ncursorpos =率(objtextbox);
/按下键代码
无功nkeycode = window.event.keycode;
如果(nkeycode > 95)= nkeycode(95-47);
传统的加工/密封
window.event.returnvalue = false;
按钮到
开关(nkeycode)
{
案例8: / /如果动作是{有}退格
{
strtext = strtext.substr(0,ncursorpos-1)+ strtext.substr(ncursorpos,nTextLen ncursorpos);
ncursorpos --;
打破;
}
案例46:如果动作是del }
{
strtext = strtext.substr(0,ncursorpos)+ strtext.substr(ncursorpos + 1,ntextlen-ncursorpos-1);
ncursorpos --;
打破;
}
案例38:如果动作是方向键{ }
案例39:如果动作是方向键{ }
{
ncursorpos + +;
打破;
}
案例37:如果动作是方向键{左}
案例40:如果动作是方向键{下面}
{
ncursorpos --;
打破;
}
违约:
{
strtext = strtext.substr(0,ncursorpos)+ string.fromcharcode(nkeycode)+ strtext.substr(ncursorpos,nTextLen);
ncursorpos + +;
如果(ncursorpos > strtext。长度)
{
ncursorpos = strtext.length;
}
打破;
}
}
如果(strtext.match(expmask))
{
正确的输入格式
objtextbox.value = strtext;
}
移动光标
设置鼠标指针(objtextbox,ncursorpos);
}
获取文本框控件的当前光标位置
功能率(obj)
{
Obj.focus();
VaR的工作范围= document.selection.createrange();
obj.select();
无功allrange = document.selection.createrange();
workrange.setendpoint(starttostart
VaR len = workrange.text.length;
workrange.collapse(假);
workrange.select();
返回伦;
}
当前光标位置设置文本框控件。
功能设置灯光(obj,努姆){
obj.createtextrange范围=();
Range.collapse(真的);
Range.moveStart(字符、努姆);
Range.select();
}

使用方法:
1。设置默认的、不确定的初始值。例如:初始日期和时间格式,如:(年/月/日:分钟:秒)。IP是…(192.168.0.1)。事实上,它是建立一个字符不违反正则表达式。
2。面具的功能是在窗体的文本框的onkeydown事件称,和参数objtextbox是指定文本框的名称,参数的面具是一个正则表达式格式掩码。
实例:
使用日期-时间类型掩码框
复制代码代码如下所示:
U3000 U3000

使用IP掩码框
复制代码代码如下所示:
U3000 U3000