您的位置:程序门 -> web 开发 -> asp



限制text输入框的输入


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


限制text输入框的输入[已结贴,结贴人:solon271828]
发表于:2007-04-26 10:39:42 楼主
我要实现一个我输入的一个输入框,输入的第一个字符为特定的字母e,第二个字符为数字0,后边3个字符为3个任意数字(0-9),一共5个字符的输入,请问怎样实现效果最好,最好能不用提交就可以判断的那种(我以前见过输入的字符不对就不显示,即自动往回退的效果)
发表于:2007-04-26 10:47:021楼 得分:10
<input   onchange= "return   check(this.value) ">
<script>
function   check(v)
{
p   =   /^e0[0-9]{3}$/
if(!p.test(v))   alert( "false ");
}
</script>
发表于:2007-04-26 10:59:122楼 得分:0
你这有个缺点,就是提示错误后,我点确定,但是不修改,直接输入其他的,你的效果就不存在了,不过你的这个方法还是很好的
发表于:2007-04-26 11:01:373楼 得分:0
我只是把主要功能写出来,其余的自己加嘛
发表于:2007-04-26 11:05:184楼 得分:0
呵呵,好的
发表于:2007-04-26 11:06:105楼 得分:0
加多个这个:
form1.user_name.focus();
return   false;
发表于:2007-04-26 11:11:436楼 得分:0
有办法的,我给你个办法得到。这东西不通用

<input   name= "name1 "   id= "name1 "onkeydown= "this.value=this.value.replace(//^e0[0-9]{3}$/, ' ') "   onkeyup= "this.value=this.value.replace(/^e0[0-9]{3}$/, ' ') "   onblur= "this.value=this.value.replace(/^e0[0-9]{3}$/, ' ') "   type= "text ">

以上代码,在firefox中完全无用
发表于:2007-04-26 11:18:147楼 得分:0
如果是单一的类型判断可以实现
但是你的文本域当中包含字母e,所以不太可能屏蔽其他字符的输入。
发表于:2007-04-26 11:19:408楼 得分:30
<script>
function   checkinput(txtinput)
{
        var   txtstr=txtinput.value;
var   reg   =     /^e(0([0-9]{1,3})?)?$/;
if(!reg.test(txtstr))
txtinput.value=txtstr.substring(0,txtstr.length-1);
}
</script>
<input   type= "text "   name= "textfield "   onkeyup= "return   checkinput(this) ">
发表于:2007-04-26 11:38:469楼 得分:0
本来就是这样的,是没有办法的事情。这种东西,必须使用专门的函数进行判定,不然,誰知道你的对不对啊?

我的那段,本来是用来判定数字的。嘿嘿你们誰去测试下吧,反正firefox是完全没有用处的
发表于:2007-04-26 11:50:3110楼 得分:0
asp0431()   的方法很好
发表于:2007-04-26 11:50:5711楼 得分:0
asp0431()   的方法能限制输入,但是没有限制长度,少于5个字符提交不能报错,如果加上一个长度验证,asp0431()   的方法就完美了
发表于:2007-04-26 11:52:2112楼 得分:10
<script>
function   checkinput(txtinput)
{
        var   txtstr=txtinput.value;
var   reg   =     /^e(0([0-9]{1,3})?)?$/;
if(!reg.test(txtstr))
txtinput.value=txtstr.substr(0,txtstr.length-1);
}
function   length(txtlength){
if(txtlength.length!=5)
{alert( "少数字 ");}
}
</script>
<input   type= "text "   name= "textfield "   onkeyup= "return   checkinput(this) "   onblur= "return   length(this) ">
简单加个函数,就能满足了
发表于:2007-04-26 11:53:3313楼 得分:0
嗯,对,asp0431()的方法中我如果输入多个汉字,他就判断不错来啦
发表于:2007-04-26 12:03:2614楼 得分:0
还有个问题,我如果快速的输入多个字符那些往回退的功能就无效
发表于:2007-04-26 12:08:5815楼 得分:0
不会的。一般不会。

你使用change会这样,你换个函数啊~换个其他的启动事件就ok了
发表于:2007-04-26 12:10:1716楼 得分:0
onkeyup改成onkeydown看看
发表于:2007-04-26 12:25:2517楼 得分:0
jinjuduo()   的方法判断不出字符的多少啊
发表于:2007-04-26 12:29:3918楼 得分:0
前2个字符就没必要让用户输入了,另见:http://tb.blog.csdn.net/trackback.aspx?postid=1328109
发表于:2007-04-26 13:18:3519楼 得分:0
<script>
function   checkinput(txtinput,act)
{
        var   txtstr=txtinput.value;
var   reg   =   /^e(0([0-9]{1,3})?)?/;
var   reg2   =   /^e(0([0-9]{3}))$/;
if(act   ==   "1 "){
    var   txtmatch=txtstr.match(reg);
    txtinput.value   =   (txtmatch   ==   null)? " ":txtmatch[0];
}else{
    if(!reg2.test(txtstr)){
    alert( "格式不对 ");
    return   false;
    }
}
}
</script>
<input   type= "text "   name= "t "   onkeyup= "return   checkinput(this,1) "   onblur= "return   checkinput(this,2) ">
发表于:2007-04-26 15:51:2720楼 得分:0
十分感谢asp0431       jinjuduo   wasuka
发表于:2007-04-27 15:59:5321楼 得分:0
<html>
<head>
<script>
function   txb_onkeypress()   {
var   srcelem   =   event.srcelement;
var   osel   =   document.selection.createrange().duplicate();
var   epsn   =   osel.text.length;
var   srcrange   =   srcelem.createtextrange();
osel.setendpoint( 'endtostart ',   srcrange);
var   bpsn   =   osel.text.length;
epsn   +=   bpsn;
var   num   =   osel.text   +   string.fromcharcode(event.keycode)   +   srcrange.text.substr(epsn);
event.returnvalue   =   validate(srcelem,num);
}

function   txb_onpaste()   {
var   srcelem   =   event.srcelement;
var   osel   =   document.selection.createrange().duplicate();
var   epsn   =   osel.text.length;
var   srcrange   =   srcelem.createtextrange();
osel.setendpoint( 'endtostart ',   srcrange);
var   bpsn   =   osel.text.length;
epsn   +=   bpsn;
var   num   =   osel.text   +   window.clipboarddata.getdata( "text ")   +   srcrange.text.substr(epsn);
event.returnvalue   =   validate(srcelem,num);
}

function   txb_onblur()
{
var   srcelem   =   event.srcelement;
if(!validate(srcelem,srcelem.value))
{
srcelem.value   =   document.getelementsbyname( 'htext ')[0].value;
}
}

function   txb_onfocus()
{
var   srcelem   =   event.srcelement;
document.getelementsbyname( 'htext ')[0].value   =   srcelem.value;
}

function   validate(control,num)   {
var   reg;
var   reg1;
var   reg2;
obj1   =   document.getelementsbyname( 'checkmode ')[0];
obj2   =   document.getelementsbyname( 'ctext ')[0];
if   (control.attributes.getnameditem( 'validatamode ').value   ==   1   ¦ ¦   (control.attributes.getnameditem( 'validatamode ').value   ==   2   &&   document.getelementsbyname( 'ctext ')[0].value   ==   0))   {
reg=/^[1-9]\d*$/;
return   reg.test(num);
}
else   if   (control.attributes.getnameditem( 'validatamode ').value   ==   2)   {
if(obj1.checked)
{
eval( 'reg=/^[1-9]\\d*[.]?\\d{0, '   +   obj2.value   +   '}$/; ');
reg1=/^0{1}$/;
eval( 'reg2=/^0{1}[.]{1}\\d{0, '   +   obj2.value   +   '}$/; ');
}
else
{
reg=/^[1-9]\d*[.]?\d*$/;
reg1=/^0{1}$/;
reg2=/^0{1}[.]{1}\d*$/;
}
return   reg.test(num)   ¦ ¦   reg1.test(num)   ¦ ¦   reg2.test(num);
}
else   if(control.attributes.getnameditem( 'validatamode ').value   ==   3)   {
reg=/^[1-9]\d*$/;
reg1=/^0{1}$/;
return   reg.test(num)   ¦ ¦   reg1.test(num);
}
}

function   validatamode_onclick(val)   {
var   nameditem   =   document.createattribute( 'validatamode ');
nameditem.value   =   val;
document.getelementsbyname( 'btext ')[0].attributes.setnameditem(nameditem);
if(!validate(document.getelementsbyname( 'btext ')[0],   document.getelementsbyname( 'btext ')[0].value))
{
document.getelementsbyname( 'btext ')[0].value   =   ' ';
}
}

function   setbutton_onclick(control)   {
var   srcrange   =   control.createtextrange();
srcrange.movestart( 'character ',math.min(document.bform.atext.value,control.createtextrange().text.length));
srcrange.collapse();
srcrange.select();
control.focus();
ta_onselect();
}

function   setall_onclick(control)   {
var   srcrange   =   control.createtextrange();
srcrange.movestart( 'character ',   0);
srcrange.moveend( 'character ',   control.createtextrange().text.length);
srcrange.select();
control.focus();
ta_onselect();
}

function   reset_onclick(control)   {
var   srcrange   =   control.createtextrange();
srcrange.movestart( 'character ',   control.createtextrange().text.length);
srcrange.collapse();
srcrange.select();
control.focus();
ta_onselect();
}

function   getbutton_onclick(control)   {
if(control.createtextrange().text.length   ==   0)
{
document.bform.atext.value   =   0;
return;
}
var   osel   =   control.currange;
var   epsn   =   osel.text.length;
var   sellen   =   epsn;
var   srcrange   =   control.createtextrange();
osel.setendpoint( 'endtostart ',   srcrange);
var   bpsn   =   osel.text.length;
epsn   +=   bpsn;
document.bform.cursorpsn[0].checked   ?   document.bform.atext.value   =   bpsn   :   document.bform.atext.value   =   epsn;
osel.movestart( 'character ',bpsn);
osel.moveend( 'character ',sellen);
osel.collapse(document.bform.cursorpsn[0].checked);
osel.select();
}

function   ta_onselect()
{
if(event.srcelement.createtextrange)
//event.srcelement.currange   =   document.selection.createrange().duplicate();
event.srcelement.currange   =   document.selection.createrange();
}

function   calculator()   {};

with   (calculator)   {
prototype._prop   =   0;
prototype.setprop   =   function(p)   {_prop   =   p};
prototype.getprop   =   function()   {return   _prop};
}

function   alert_onclick()
{
var   tt   =   new   calculator();
tt.setprop(3);
alert(tt.getprop());
alert( '\ ' ');
}

function   checkmode_on_click(control1,control2)
{
control2.readonly   =   !control1.checked;
if(!validate(document.getelementsbyname( 'btext ')[0],   document.getelementsbyname( 'btext ')[0].value))
{
document.getelementsbyname( 'btext ')[0].value   =   ' ';
}
}
</script>
</head>
<body>
<form   name= "aform ">
<input   type= "text "   validatamode= "1 "   name= "btext "   size= "80 "   onkeypress= "txb_onkeypress(); "   onpaste= "txb_onpaste(); "   onblur= "txb_onblur(); "   onfocus= "   txb_onfocus(); ">
<br>
<input   type= "radio "   name= "validatamode "   checked   onclick= "validatamode_onclick(1) "> 整数
<input   type= "radio "   name= "validatamode "   onclick= "validatamode_onclick(2) "> 小数
<br>
<input   type= "checkbox "   name= "checkmode "   checked   onclick= "checkmode_on_click(this,ctext) "> 小数位限制
<input   type= "text "   name= "ctext "   value= "2 "   size= "4 "   maxlength= "2 "     validatamode= "3 "   onkeypress= "txb_onkeypress(); "   onpaste= "txb_onpaste(); "   onblur= "txb_onblur(); "   onfocus= "   txb_onfocus(); ">
<input   type= "hidden "   name= "htext ">
<br>
<input   type= "reset "   value= "delete ">
</form>
<a   href= "javascript:if(1==1   &&   comfirm(11)){alert(1);}else{alert(2);} "> 111 </a>
<form   name= "bform ">
textarea:
<br>
<textarea   name= "textar "   rows= "5 "   cols= "80 "   onselect= "ta_onselect() "   onclick= "ta_onselect(); "
onkeyup= "ta_onselect(); "> 网友说我是一只动物,有灵性和血性却没有人性……为此我很悲哀,我换了无数个昵称后他们仍然可以从我的文章中看的出我就是那只没有人性的螃蟹。索性我放弃了努力,我只有我自己的名字纵横其间,一进那个社区你就会看社区top   ten--第一个就是我,秦剑。 </textarea>
<br>
input:
<br>
<input   type= "text "   onselect= "ta_onselect() "   onclick= "ta_onselect(); "   onkeyup= "ta_onselect(); "   name= "text_sigle "   size= "80 "   value= "网友说我是一只动物,有灵性和血性却没有人性……为此我很悲 ">
<br>
<input   validatamode= "1 "   type= "text "   name= "atext "   maxlength= "3 "   onkeypress= "txb_onkeypress(); "
onpaste= "txb_onpaste(); "   id= "text1 ">
<br>
<input   type= "radio "   checked   value= "true "   name= "cursorpsn "> 前   <input   type= "radio "   value= "false "   name= "cursorpsn "> 后
<br>
<input   id= "setpsn "   type= "button "   value= "设置光标位置 "   id= "setbutton "   name= "setbutton "   onclick= "setbutton_onclick(document.bform.text_sigle) ">
<input   id= "getpsn "   type= "button "   value= "获取光标位置 "   id= "getbutton "   name= "getbutton "   onclick= "getbutton_onclick(document.bform.text_sigle) ">
<input   id= "getpsn "   type= "button "   value= "全选 "   id= "setallbutton "   name= "setallbutton "   onclick= "setall_onclick(document.bform.text_sigle) ">
<input   id= "getpsn "   type= "button "   value= "取消 "   id= "resetbutton "   name= "resetbutton "   onclick= "reset_onclick(document.bform.text_sigle) ">
<input   type= "reset "   value= "delete ">
</form>
<form   name= "cform ">
<input   type= "button "   onclick= "alert_onclick(); "   value= "点我吧~! ">
</form>
<img   src= "1.jpg "> </img>
</body>
</html>


快速检索

最新资讯
热门点击