CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

javascript中onkeypress和onblur事件有什么不同?我这段代码错在哪里?50分奉上!!在线...

楼主LoveLonghair(我爱长发飘飘)2003-03-03 12:52:14 在 Web 开发 / ASP 提问

<script   language="javascript">  
   
  function   checknick()   {  
          var   str_nickname   =   new   string(document.form1.nickname.value);  
       
          var   k   =   window.event.keyCode;  
          if(k<48   ||   ((k>57)   &&   (k<65))   ||((k>90)   &&   (k<97)   &&   k!=95)||   ((k>122)   &&   (k<=255)))   {  
                  alert("你输入了非法字符!");  
                  window.event.keyCode   =   0;  
                  }    
          if(str_nickname.length>8)  
                {   alert("error!");  
                    return   false;  
                    }  
  }  
  </script>  
   
  <input   type="text"   name="nickname"   size="10"   onblur="checknick()"   onpaste="return   false">  
   
  如果用onblur事件,注释掉"var   str_nickname=..."和函数中最后一个if语句可以判断输入的字符,但不能判断字符长度!       如果不注释这两句代码,连字符验证也不能实现,长度判断也不能实现.  
   
   
  如果用onkeypress事件,注释掉"var   str_nickname=..."和函数中最后一个if语句可以判断输入的字符,但不能判断字符长度!   如果不注释这两句代码,连字符验证也不能实现,长度判断也不能实现.  
   
  特向高手请教,为何使用两种事件都不能判断输入字符的长度!两种事件有什么区别?怎样实现判断字符长度的功能?  
  问题点数:50、回复次数:9Top

1 楼fason(咖啡人生)回复于 2003-03-03 12:59:53 得分 10

如果你用onkeypress当然就只能用keycode,这样对每个字符判断,如果你用onblur就只能对整个value进行判断,区别很大Top

2 楼lgchao()回复于 2003-03-03 13:02:33 得分 5

onKeyPress--按下键  
  onBlur--失去焦点  
   
  跟事件无关,是你的程序问题Top

3 楼net_lover(【孟子E章】)回复于 2003-03-03 13:03:49 得分 15

var   str_nickname   =   new   String(nickname.value);  
    string大写Top

4 楼LoveLonghair(我爱长发飘飘)回复于 2003-03-03 13:04:57 得分 0

就是说,用onkeypress是对每个字符分别判断的,不能判断整个value;用onblur应该可以判断字符长度.是吧?可是为什么我的代码不能实现?错在哪里???:(Top

5 楼fason(咖啡人生)回复于 2003-03-03 13:09:11 得分 0

你楼上说了,还有,你说的不是必然,但对你的程序而言的确是Top

6 楼lgchao()回复于 2003-03-03 13:09:36 得分 5

<script   language="javascript">  
  //只能输入大小写字母,数字和下划线  
  function   checknick(str)   {  
          var   re=/[^0-9a-zA-Z]/  
          if(re.test(str))   {  
                  alert("你输入了非法字符!");  
                  return   false;  
                  }    
          if(str.length>8)  
                {   alert("error!");  
                    return   false;  
                    }  
          return   true;  
  }  
  </script>  
  <input   type="text"   name="nickname"   size="10"   onblur="checknick(this.value)"   onpaste="return   false">Top

7 楼moonpiazza(月光易水)回复于 2003-03-03 13:16:53 得分 15

1.   new   string()     ==>   new   String()  
  2.   分别使用onkeypress,onblur事件  
  3.   限定输入框长度可以使用   maxlength  
   
   
  <script   language="javascript">  
  function   checknick_keypress()   {  
          var   str_nickname   =   new   String(document.form1.nickname.value);  
       
          var   k   =   window.event.keyCode;  
          if(k<48   ||   ((k>57)   &&   (k<65))   ||((k>90)   &&   (k<97)   &&   k!=95)||   ((k>122)   &&   (k<=255)))   {  
                  alert("你输入了非法字符!");  
                  window.event.keyCode   =   0;  
                  return   false;  
                  }    
  }  
  function   checknick_blur()   {  
          var   str_nickname   =   new   String(document.form1.nickname.value);  
   
          if(str_nickname.length>8)  
                {   alert("error!");  
                    return   false;  
                    }  
  }  
  </script>  
  <FORM   METHOD=POST   ACTION=""   name=form1>  
  <input   type="text"   name="nickname"   size="10"   onblur="checknick_blur()"   onkeypress="checknick_keypress()"   onpaste="return   false">  
  </FORM>  
   
   
   
  :_)Top

8 楼LoveLonghair(我爱长发飘飘)回复于 2003-03-03 13:21:33 得分 0

如果不用maxlength,通过脚本如何实现.由于我的用户名可以是汉字,如何限制在8个字节以内.  
  var   mystr="aaa中国123_"  
  mystr.length=???       //多少?Top

9 楼LoveLonghair(我爱长发飘飘)回复于 2003-03-03 13:57:50 得分 0

to   moonpiazza(月下小生):  
        onblur事件里能用window.event.keyCode吗?我在onblur里用window.event.keyCode好象不行,无论什么字符都认为是非法字符.好象是第一个IF条件恒成立一样.是什么原因??高手解释解释.Top

相关问题

  • 20分奉上!!
  • 60分奉上
  • 50分奉上
  • 哪位有javascript编程起步 电子书 100分奉上(只要pdf或chm格式的)
  • 哪位有javascript编程起步 电子书 100分奉上(只要pdf或chm格式的)
  • ASM 初学者奉上
  • 高手求救?100奉上!
  • 98问题/50分奉上
  • update() 问题 100分奉上
  • 为什么我不能在tapstrip上显示picturebox中的图片?40分奉上!40分奉上!40分奉上!

关键词

  • 字符
  • 代码
  • onblur
  • 判断
  • onkeypress
  • 长度
  • 事件
  • nickname
  • 实现
  • 不能

得分解答快速导航

  • 帖主:LoveLonghair
  • fason
  • lgchao
  • net_lover
  • lgchao
  • moonpiazza

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo