下面的代码为什么在Chrome中不能阻止输入“a"键?

ynduanlian 2015-04-25 10:52:19
想用下面的代码实现,当用户按下键盘上“A”键时,在页面文本框中不能输入字母“a”:

function InputChange() {
if (String.fromCharCode(event.keyCode) == "A")
{ alert('false'); return false; }
alert('true');
return true;
}


<Textarea id="TextArea1" style="width:1000px; height:300px; border-color:Green;" onkeydown="return InputChange();"></Textarea>


但是奇怪的是,上面的代码并没有语法错误,在IE7中也确实实现上面的预期,但在Chrome中,尽管确实alert弹出了false ,但是输入框中还是输入了字母 a
不知是哪里的问题?
...全文
165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aspclass 2015-04-28
  • 打赏
  • 举报
回复
用键盘对应的编码吧!
allali 2015-04-27
  • 打赏
  • 举报
回复
引用 2 楼 ynduanlian 的回复:
onkeydown不行么?因为onkeypress不能响应如回退这样一些按键,所以我才改用的onkeydown事件?

function InputChange() {
            if (String.fromCharCode(event.keyCode) == "A") 
            {   
				setTimeout(function(){
						alert('false');
				},1)
				return false;
				
			}else {
				alert('true');
				return true;
			}
            
        }
ynduanlian 2015-04-25
  • 打赏
  • 举报
回复
onkeydown不行么?因为onkeypress不能响应如回退这样一些按键,所以我才改用的onkeydown事件?
allali 2015-04-25
  • 打赏
  • 举报
回复

function InputChange() {
            if (String.fromCharCode(event.keyCode).toLocaleUpperCase() == "A") 
            {   				
				alert('false'); 				
				return false;				
			}

            alert('true');
			return true;			            
        }
<Textarea id="TextArea1" style="width:1000px; height:300px; border-color:Green;" onkeypress ="return InputChange();"></Textarea>
Go 旅城通票 2015-04-25
  • 打赏
  • 举报
回复
你代码没有问题,去掉alert('false');就行,而且你的代码不兼容firefox,直接这样就可以了
<Textarea id="TextArea1" style="width:1000px; height:300px; border-color:Green;" onkeydown="return InputChange(event);"></Textarea>
<script>
function InputChange(e) {return e.keyCode!=65; }
</script>

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧