javascript:密钥验证

javascript:密钥验证,javascript,validation,keyboard,Javascript,Validation,Keyboard,im使用javascript验证文本框中的键。它不起作用:( 函数数值(e){ 返回((e.keyCode==8)|| (e.keyCode==9)|| (e.keyCode>47和&e.keyCode36和&e.keyCode95和&e.keyCode

im使用javascript验证文本框中的键。它不起作用:(

函数数值(e){
返回((e.keyCode==8)||
(e.keyCode==9)||
(e.keyCode>47和&e.keyCode<58)||
(e.keyCode>36和&e.keyCode<41)||
(e.keyCode==46)||
(e.keyCode>95和&e.keyCode<106)||
e、 keyCode==190||
e、 keyCode==110);
}

帮助我…

如果您想要一个仅限数字的文本框,请尝试以下操作:

function numbercheck(event) {
    var unicode = event.charCode; var unicode1 = event.keyCode; if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Safari") != -1) {
        if (unicode1 != 8) {
            if ((unicode >= 48 && unicode <= 57) || unicode1 == 37 || unicode1 == 39 || unicode1 == 35 || unicode1 == 36 || unicode1 == 9 || unicode1 == 46)
            { return true; }
            else
            { return false; }
        }
    }
    if (navigator.userAgent.indexOf("MSIE") != -1 || navigator.userAgent.indexOf("Opera") == -1) {
        if (unicode1 != 8) {
            if (unicode1 >= 48 && unicode1 <= 57)
            { return true; }
            else
            { return false; }
        }
    }
}

我知道,在例如中,您可以设置
event.keyCode=0
来抑制控件中出现的键。但我认为您需要捕获onkeydown。Firefox可能有一个等效项。这很好,因为它可以防止键实际“到达”控件

还要记住,您可能需要处理Shift+key和alt+key的组合

对于这类事情,一种很好的调试技术是说windows.status=event.keyCode,
您可以在键入时看到密钥码是什么…

只需尝试以下代码。我已检查了F5密钥码,您可以根据需要进行检查

function disableKey(event) 
{         
  if (!event) event = window.event;
  if (!event) return;
  var keyCode = event.keyCode ? event.keyCode : event.charCode;
  if (keyCode == 116) {
   showMsg("This functionality is disabled.");
   window.status = "F5 key detected! Attempting to disabling default response.";
   window.setTimeout("window.status='';", 2000);
   // Standard DOM (Mozilla):
   if (event.preventDefault) event.preventDefault();
   //IE (exclude Opera with !event.preventDefault):
   if (document.all && event && !event.preventDefault) {
     event.cancelBubble = true;
     event.returnValue = false;
     event.keyCode = 0;
   }
   return false;
  }
}

function setEventListenerForFrame(eventListener) 
{
  document.getElementById('your_textbox').onkeydown = eventListener;
  //frames['frame'].document.onkeypress = eventListener;   
}


<body onload="setEventListener(disableKey);">
功能禁用键(事件)
{         
如果(!event)event=window.event;
如果(!事件)返回;
var keyCode=event.keyCode?event.keyCode:event.charCode;
如果(键代码==116){
showMsg(“此功能已禁用”);
window.status=“检测到F5键!正在尝试禁用默认响应。”;
setTimeout(“window.status='';”,2000);
//标准DOM(Mozilla):
if(event.preventDefault)event.preventDefault();
//IE(使用!event.preventDefault排除Opera):
if(document.all&&event&&event.preventDefault){
event.cancelBubble=true;
event.returnValue=false;
event.keyCode=0;
}
返回false;
}
}
函数setEventListenerForFrame(eventListener)
{
document.getElementById('your_textbox')。onkeydown=eventListener;
//frames['frame'].document.onkeypress=eventListener;
}

“不工作”是相当模糊的。它以什么方式不正常?允许所有键值…现在滚动减少100%;-)您如何调用该函数?它不允许所有键值-例如
e.keyCode=10
?我想这会使
numeric(e)
返回false。此函数检查是否按了enter键。。。为什么?
onkeypress="return numbercheck(event)" 
function numeric(e) {
   e = e || window.event;
   keycode = e.keyCode || e.which;
   if(keycode === 13){
      alert("cheese");
   }
}
function disableKey(event) 
{         
  if (!event) event = window.event;
  if (!event) return;
  var keyCode = event.keyCode ? event.keyCode : event.charCode;
  if (keyCode == 116) {
   showMsg("This functionality is disabled.");
   window.status = "F5 key detected! Attempting to disabling default response.";
   window.setTimeout("window.status='';", 2000);
   // Standard DOM (Mozilla):
   if (event.preventDefault) event.preventDefault();
   //IE (exclude Opera with !event.preventDefault):
   if (document.all && event && !event.preventDefault) {
     event.cancelBubble = true;
     event.returnValue = false;
     event.keyCode = 0;
   }
   return false;
  }
}

function setEventListenerForFrame(eventListener) 
{
  document.getElementById('your_textbox').onkeydown = eventListener;
  //frames['frame'].document.onkeypress = eventListener;   
}


<body onload="setEventListener(disableKey);">