Javascript isNumberKey()不工作
很久以前,if在这个网站上发现了一些代码,阻止了用户在文本框中输入字母,并且成功了。自从找到这段代码后,我对它进行了修改和添加,但现在它不起作用了。这就是我的代码:Javascript isNumberKey()不工作,javascript,html,keyevent,Javascript,Html,Keyevent,很久以前,if在这个网站上发现了一些代码,阻止了用户在文本框中输入字母,并且成功了。自从找到这段代码后,我对它进行了修改和添加,但现在它不起作用了。这就是我的代码: var count = 1 function isNumberKey(event) { var keyCode = window.event ? event.keyCode : event.which; if (event.keyCode === 8 // backspace || event.keyCode === 46 //
var count = 1
function isNumberKey(event) {
var keyCode = window.event ? event.keyCode : event.which;
if (event.keyCode === 8 // backspace
|| event.keyCode === 46 // delete
|| event.keyCode === 13 // enter key
|| event.keyCode === 9 // tab
|| event.keyCode === 116 // F5 (refresh)
|| event.keyCode === 112 // F1
|| event.keyCode === 113 //F2
|| event.keyCode === 114 //F3
|| event.keyCode === 115 //F4
|| event.keyCode === 117 //F6
|| event.keyCode === 118 //F7
|| event.keyCode === 119 //F8
|| event.keyCode === 120 //F9
|| event.keyCode === 121 //F10
|| event.keyCode === 122 //F11
|| event.keyCode === 123 //F12
) {
return true;
}
else if ( key < 48 || key > 57) {
if (count < 6) {
count++; //adds one to count
}
else {
alert("Please Only Enter Numerical Values");
count = 1;
}
return false;
}
else return true;
}
var计数=1
函数isNumberKey(事件){
var keyCode=window.event?event.keyCode:event.which;
如果(event.keyCode==8//backspace
||event.keyCode==46//删除
||event.keyCode==13//输入键
||event.keyCode==9//tab
||event.keyCode==116//F5(刷新)
||event.keyCode==112//F1
||event.keyCode==113//F2
||event.keyCode===114//F3
||event.keyCode===115//F4
||event.keyCode===117//F6
||event.keyCode===118//F7
||event.keyCode==119//F8
||event.keyCode===120//F9
||event.keyCode==121//F10
||event.keyCode==122//F11
||event.keyCode===123//F12
) {
返回true;
}
否则,如果(键<48 | |键>57){
如果(计数<6){
count++;//将一个添加到count
}
否则{
警报(“请仅输入数值”);
计数=1;
}
返回false;
}
否则返回true;
}
我不是说我写了这段代码,但是有人能看到代码有什么问题吗?这应该可以:
textBox.onkeypress = function(e) {
e = e || window.event;
var charCode = (typeof e.which == "undefined") ? e.keyCode : e.which;
var charStr = String.fromCharCode(charCode);
if (/\d/.test(charStr)) {
return false;
}
};
这会奏效的。它不起作用,因为您使用的是
key<48 | | key>57
而不是event.keyCode<48 | | event.keyCode>57
var count = 1
function isNumberKey(event) {
var keyCode = window.event ? event.keyCode : event.which;
if (event.keyCode === 8 // backspace
|| event.keyCode === 46 // delete
|| event.keyCode === 13 // enter key
|| event.keyCode === 9 // tab
|| event.keyCode === 116 // F5 (refresh)
|| event.keyCode === 112 // F1
|| event.keyCode === 113 //F2
|| event.keyCode === 114 //F3
|| event.keyCode === 115 //F4
|| event.keyCode === 117 //F6
|| event.keyCode === 118 //F7
|| event.keyCode === 119 //F8
|| event.keyCode === 120 //F9
|| event.keyCode === 121 //F10
|| event.keyCode === 122 //F11
|| event.keyCode === 123 //F12
) {
return true;
}
else if ( event.keyCode < 48 || event.keyCode > 57) {
if (count < 6) {
count++; //adds one to count
}
else {
alert("Please Only Enter Numerical Values");
count = 1;
}
return false;
}
else return true;
}
var计数=1
函数isNumberKey(事件){
var keyCode=window.event?event.keyCode:event.which;
如果(event.keyCode==8//backspace
||event.keyCode==46//删除
||event.keyCode==13//输入键
||event.keyCode==9//tab
||event.keyCode==116//F5(刷新)
||event.keyCode==112//F1
||event.keyCode==113//F2
||event.keyCode===114//F3
||event.keyCode===115//F4
||event.keyCode===117//F6
||event.keyCode===118//F7
||event.keyCode==119//F8
||event.keyCode===120//F9
||event.keyCode==121//F10
||event.keyCode==122//F11
||event.keyCode===123//F12
) {
返回true;
}
否则如果(event.keyCode<48 | | event.keyCode>57){
如果(计数<6){
count++;//将一个添加到count
}
否则{
警报(“请仅输入数值”);
计数=1;
}
返回false;
}
否则返回true;
}
这是在我询问时提出的,因此在这里可能值得补充的是,keyCode
和charCode
被弃用,因为此时,接受的答案可能不是最好的
添加检查或实现isNumberKey函数的更好方法可以是:
const isNumberKey = (event: KeyboardEvent) =>
((event.key.length > 1) || event.key.match(/^\d|-$/))
这样,我们选中allow special keys do the function(允许特殊键执行其功能),同时确保在按下单字符键时只允许数字。当您说Not work(不工作)时,您会遇到什么错误/行为?它仍然允许用户输入字母出于某种原因,当按下按钮时,它不会调用函数isNumberkey()!您已经将event.keyCode分配给顶部的keyCode变量。所以最好在方法的其余部分使用它来获得更干净的代码。
var charCode=(typeof e.which==“undefined”)?e、 键码:e.which代码>可以进一步降低为var charCode=e.which | e.keyCode代码>谢谢,这一定是问题所在,由于某种原因,我得到了很多系统引用错误(使用firebug),这一定会使代码表单停止工作