Jqueryfilter文本框(防止用户插入某些字符)

我试图阻止用户在文本框中键入某些字符,这是我到目前为止的代码:

$().ready(function() { $(".textbox").keypress(function(event) { var keyVal = event.keyCode; if ((keyVal > 48 && keyVal < 57)) { // Numbers return false; } }); }); 

它正在进入事件和条件,但仍然插入了角色。 关于我如何去做的任何想法?

您的keyVal分配并未考虑所有浏览器。 这段代码适用于Firefox,IE7,Safari,Chrome,并且不允许您在字段中键入数字,使用普通文本输入元素进行测试:

 $().ready(function(){ $(".textbox").keypress(function(event){ var keyVal = (event.charCode ? event.charCode : ((event.keyCode) ? event.keyCode : event.which)); if((keyVal > 48 && keyVal < 57))// Numbers { return false; } }); }); 

当我不得不做这样的事情时,我已经使用了事件onkeyup

不是自动剥离字符(这可能导致用户混淆),为什么不使用正则表达式来检查密钥上的有效字符,然后可能会在输入中显示旁注,例如“您可能不输入数字”此字段’或更具体的实际输入字段,’您的城市名称可能不包含数字。’。

你必须包括keyVal = 48和keyVal = 57,否则你将分别允许0和9。 最终的代码如下所示:

 $().ready(function(){ $(".textbox").keypress(function(event){ var keyVal = (event.charCode || event.keyCode || event.which); if((keyVal >= 48 && keyVal <= 57))// Numbers { return false; } }); }); 

使用||也看起来更清晰 德文建议的运营商。