我试图阻止用户在文本框中键入某些字符,这是我到目前为止的代码:
$().ready(function() {
$(".textbox").keypress(function(event) {
var keyVal = event.keyCode;
if ((keyVal > 48 && keyVal < 57)) { // Numbers
return false;
}
});
});
它正在进入事件和条件,但仍然插入了角色。关于我如何处理的任何想法?
答案 0 :(得分:2)
您的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;
}
});
});
答案 1 :(得分:0)
当我不得不做这样的事情时,我使用了事件onkeyup
。
不是自动剥离字符(可能导致用户混淆),为什么不使用正则表达式来检查密钥上的有效字符,然后可能会向输入显示旁注,例如“您可能无法在此字段中输入数字”,或者某些更具体的输入字段,“您的城市名称可能不包含数字。”。
答案 2 :(得分:0)
你必须包括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;
}
});
});
使用||也更清晰德文建议的运营商。