Geetha
Geetha

Reputation:

javascript : key validation

im using javascript to validate keys in textbox. it is not working :(

  function numeric(e) {
        return ((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);
    }

help me...

Upvotes: 0

Views: 1904

Answers (4)

ACP
ACP

Reputation: 35268

Try this if you want a numbers only textbox:

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

And in your textbox call it on the onkeypress event:

onkeypress="return numbercheck(event)" 

Upvotes: 0

A Bright Worker
A Bright Worker

Reputation: 1318

Just try out the following code. I have checked F5 keycode, you can check as you want

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);">

Upvotes: 0

funkymushroom
funkymushroom

Reputation: 2139

I know that in I.E. you can set event.keyCode=0 to suppress the key appearing in the control. But I think you need to trap the onkeydown. Firefox might have an equivalent. This is good because it prevents the key actually "arriving" at the control.

Also keep in mind that you might need to handle combinations of Shift + key and alt + key.

a good debug technique for this sort of thing is to say windows.status = event.keyCode, and you can see what the keycode is as you type it...

Upvotes: 0

epascarello
epascarello

Reputation: 207521

function numeric(e) {
   e = e || window.event;
   keycode = e.keyCode || e.which;
   if(keycode === 13){
      alert("cheese");
   }
}

Upvotes: 1

Related Questions