Skip to content
Related Articles

Related Articles

Improve Article

How to restrict input box to allow only numbers and decimal point JavaScript?

  • Last Updated : 12 Sep, 2019

The task is to validate the input when the user is typing something in the input box. Here we are allowing only decimal and integers but not any other symbol. Here are a few techniques discussed.

Approach 1:

  • A RegExp to verify the input.
  • Each time a character is entered, the whole input is matched with the RegExp to check validity.
  • If it is valid, make the character valid and add to the input else not.

Example 1: This example using the approach discussed above using JavaScript.




<!DOCTYPE HTML>
<html>
  
<head>
    <title>
        How to restrict input box to allow
      only numbers and decimal point JavaScript?
    </title>
</head>
  
<body style="text-align:center;"
      id="body">
    
    <h1 id="h1"
        style="color:green;">  
            GeeksForGeeks  
        </h1>
    <p id="GFG_UP" 
       style="font-size: 15px; 
              font-weight: bold;">
    </p>
    <form>
        Type Here:
        <input id="input"
               oninput="valid(this)"
               type="text">
    </form>
    <br>
    <p id="GFG_DOWN" 
       style="font-size: 23px;
              font-weight: bold; 
              color: green; ">
    </p>
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
        el_up.innerHTML = 
          "Type in the box to see whether the input is valid or not.";
        var RegExp = new RegExp(/^\d*\.?\d*$/);
        var val = document.getElementById("input").value;
  
        function valid(elem) {
            if (RegExp.test(elem.value)) {
                val = elem.value;
                el_down.innerHTML = "Typed Valid Character.";
            } else {
                elem.value = val;
                el_down.innerHTML = "Typed Invalid Character.";
            }
        }
    </script>
</body>
  
</html>

Output:

  • Before clicking on the button:
  • After clicking on the button:

Approach 2:

  • Each time a character is entered, This character is checked whether this is valid or not.
  • This example is also checking the number of decimal entered, one can not enter 2 decimals.
  • If the character is valid, add to the input else not.

Example 2: This example using the approach discussed above using JQuery.




<!DOCTYPE HTML>
<html>
  
<head>
    <title>
        How to restrict input box to allow
      only numbers and decimal point JavaScript?
    </title>
</head>
  
<body style="text-align:center;"
      id="body">
    <h1 id="h1"
        style="color:green;">  
            GeeksForGeeks  
        </h1>
    <p id="GFG_UP" 
       style="font-size: 15px; 
              font-weight: bold;">
    </p>
    <form>
        Type Here:
        <input id="input"
               onkeypress="return GFG_Fun(this, event)" 
               type="text">
    </form>
    <br>
    <p id="GFG_DOWN" 
       style="font-size: 23px; 
              font-weight: bold; 
              color: green; ">
    </p>
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
        el_up.innerHTML = 
          "Type in the box to see whether the input is valid or not.";
  
        function isValid(el, evnt) {
            var charC = (evnt.which) ? evnt.which : evnt.keyCode;
            if (charC == 46) {
                if (el.value.indexOf('.') === -1) {
                    return true;
                } else {
                    return false;
                }
            } else {
                if (charC > 31 && (charC < 48 || charC > 57))
                    return false;
            }
            return true;
        }
  
        function GFG_Fun(t, evnt) {
            var a = isValid(t, evnt);
            if (a) {
                el_down.innerHTML = "Typed Valid Character.";
            } else {
                el_down.innerHTML = "Typed Invalid Character.";
            }
            return a;
        }
    </script>
</body>
  
</html>

Output:

  • Before clicking on the button:
  • After clicking on the button:



My Personal Notes arrow_drop_up
Recommended Articles
Page :