本程序源代码可在“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"
- "keyCode"
3."which"
4."fromCharCode"- "test"
- "/ \d/"
代码知识点更新情况:
text()方法。【也更新,敬请围观、评论。】