javascript上的event.keycode

时间:2013-01-04 16:07:10

标签: jquery javascript-events key-events

我正在使用包含带有textarea元素的表单的网页。我想使用JavaScript将输入值限制为仅数字。我发现的一种方法是在用户输入数据时检查键值:

function checkForEnter() {
if (!((event.keyCode >= 48) || (event.keyCode <= 57))) {                            
//event.stopPropagation(); throw error with IE ver 8
event.cancelBubble = true;
event.returnValue = false;
return false;

  }
}

我可以使用哪种方法来限制entereed的值?

3 个答案:

答案 0 :(得分:1)

感谢您的帮助

此解决方案适合我

inputext已将两个事件附加到同一个函数(checkForEnter),onkeypress和onkeydown

这两种情况我只验证数字

不再是bla,bla bla,

function checkForEnter() { 
if (event.keyCode == 13) {

var txt = event.srcElement;      

                    }
//that was my problem
//var chCode = ('charCode' in event) ? event.which : event.keyCode;

//that was my solution
var chCode = event.keyCode; 


                    if (chCode != 8 || chCode != 46) {

//alphanumeric keyboard
                        if (chCode >= 48) {
                            if (chCode <= 57) {
                            }
                            else {
//numeric keyboard
if (chCode > 95 && chCode < 106) {
                                } else {
                                    event.cancelBubble = true;
                                    event.returnValue = false;
                                    return false;
                                }
                            }
                        }
if (chCode == 32) {
   event.cancelBubble = true;
event.returnValue = false;
return false;
}        
}                                      
}

PS。我不能

我无法在javascript中进行多重比较

:(

因此使用if .. if .. if

答案 1 :(得分:0)

您需要event.preventDefault(),而不是event.stopPropagation()preventDefault停止按键事件的默认行为(即在文本字段中添加字符)。

答案 2 :(得分:0)

您的函数缺少event参数,因此调用未定义变量的方法自然会导致错误。尝试:

function checkForEnter(event) {
    ...
}