下面的代码为什么在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
不知是哪里的问题?
...全文
143 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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>
  • 打赏
  • 举报
回复
相关推荐
发帖
JavaScript

8.6w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2015-04-25 10:52
社区公告
暂无公告