javascript:密钥验证
im使用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
函数数值(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);">