0

我正在处理一个包含带有 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;
                    
  }
}

我可以使用什么其他方法来限制输入的值?

4

3 回答 3

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;
}        
}                                      
}

附言。我不能

我不能在javascript中进行多重比较

: (

出于这个原因,使用 if .. if .. if

于 2013-01-10T16:08:34.853 回答
0

你想要event.preventDefault(),没有event.stopPropagation()preventDefault停止按键事件的默认行为(即,在文本字段中添加一个字符)。

于 2013-01-04T16:10:00.943 回答
0

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

function checkForEnter(event) {
    ...
}
于 2013-01-04T16:38:34.597 回答