我正在使用包含带有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的值?
答案 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) {
...
}