继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

qq_感受时光的匆匆流失_0
关注TA
已关注
手记 7
粉丝 19
获赞 154

本程序源代码可在“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()方法。【也更新,敬请围观、评论。】

打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP