手记

理解onkeypress事件【案例1:用户无法再输入框里输入数字】

本程序源代码可在“W3C”网站下载,下文是以此源代码作为案例来分析

<body>
<script type="text/javascript">
function noNumbers(e)
{
var keynum
var keychar
var numcheck
if(window.event) // *兼容IE浏览器
    {
    keynum = e.keyCode  //*获取键盘按键的Unicode值
    }
else if(e.which)   //兼容 Netscape/Firefox/Opera
    {
    keynum = e.which  //*获取键盘按键的Unicode值
    }
keychar = String.fromCharCode(keynum)
  /*接受keynum的Unicode 值,返回字符串给变量。*/
numcheck = /\d/     /* 匹配一个字数字符,[0-9] */
return !numcheck.test(keychar)
/*非字数字符返回true,是字数字符返回False*/
}
</script>
<form>
Type some text (numbers not allowed):
<input type="text" onkeypress="return noNumbers(event)" />
</form>
</body>

重点理解:“这里的return”

input type="text" onKeyPress="return noNumbers(event)"
【这里的return是做一个判断,一般情况下,noNumbers()方法里会return false或者return true,这个时候外面的return就会起作用,如果方法里面return true,那么js代码中后续操作会继续执行。如果是return false那么js代码中后续操作就不会执行】

代码分析【这里感谢“磁单极”同学的帮忙,援助。】

当在文本框里按下一个按键时,会调用noNumbers(event)函数。函数内定义三个变量,“keynum”是用来接收键盘按键的Unicode值,Keychar是把Unicode值返回成字符串赋值给它,numcheck是用来匹配一个数字字符【0-9】,通过"if......else if"语句兼容浏览器获得键盘按键的Unicode值。返回字符串中不符合“numcheck”库的字符【即如果是数字就return false失效,非数字return true】

本代码知识点:【详解见后续文章】
1."window.event"

  1. "keyCode"
    3."which"
    4."fromCharCode"
  2. "test"
  3. "/ \d/"

代码知识点更新情况:
text()方法。【也更新,敬请围观、评论。】

2人推荐
随时随地看视频
慕课网APP