Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to avoid entering special characters in JavaScript

Tags:

javascript

On html I have one input box in which I just want to enter numeric values. I used following function:

function allowNumbersOnly(event,locale) {
    if(locale=='en' && (event.keyCode==190 || event.keyCode==110)){
        return true;
    }
    else if(locale=='nl' && (event.keyCode==188 || event.keyCode==190 || event.keyCode==110)){
        return true;
    }
    if(event.keyCode==189 || (event.keyCode==109) ){
        return true;
    }
    var key = event.charCode || event.keyCode || 0;

    // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
    if (
        key == 8 || 
        key == 9 ||
        key == 46 ||
        (key >= 37 && key <= 40) ||
        (key >= 48 && key <= 57) ||
        (key >= 96 && key <= 105)){

        }else{
             event.preventDefault();

            }
}

This code works fine. But when I am pressing shift key+ any number from keyboard then special character gets entered. Can anyone tell me how to solve this issue?

like image 877
Shruti Avatar asked Dec 03 '25 05:12

Shruti


2 Answers

Try the following function

function isNumber(evt) {
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
    return false;
}
return true;
}

If you are using HTML5 just try

<input type="number">
like image 56
MusicLovingIndianGirl Avatar answered Dec 05 '25 17:12

MusicLovingIndianGirl


Try like this:

function blockspecialcharacter(e) {
    var key= document.all ? key= e.keyCode : key= e.which;
    return ((key > 64 && key < 91) || (key> 96 && key< 123) || key== 8 || key== 32 || (key>= 48 && key<= 57));
}

Check demo here

like image 20
Rahul Tripathi Avatar answered Dec 05 '25 17:12

Rahul Tripathi