Skip to content Skip to sidebar Skip to footer

Allow To Enter Only 2 Decimal Points Number

I have a condition to allow user to input only 2 decimal points number and restrict the alphabets and other characters. I used the following function: function isNumberKeyOnlyWith

Solution 1:

Try this. It will check the value each time the focus is gone from the input field, but you can use any event you like. It will parse the value as a float, and then round it to 2 decimal points.

Here is the fiddle: http://jsfiddle.net/sAp9D/

HTML:

<inputtype="text"id="the_id" />

JavaScript:

var input_field = document.getElementById('the_id');

input_field.addEventListener('change', function() {
    var v = parseFloat(this.value);
    if (isNaN(v)) {
        this.value = '';
    } else {
        this.value = v.toFixed(2);
    }
});

Solution 2:

Your question is very hard to understand but if you want to check that a string has only 2 decimals then you can just do this

if( value.match(/\./g).length === 2 ) {
    // Number has 2 decimals eg. 1.2.3
} else {
   // Number is incorrect eg. 1.2.3.4
}

or if you want 1.2 then

if( value.match(/\./g).length === 1 ) {
    // Code....
}

Solution 3:

I use the following

// This function will only allow digitsfunctionnumericFormat( fld , e , extraStrCheck )
{
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
if ( extraStrCheck )
    strCheck += extraStrCheck;
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;

if (whichCode == 13) returntrue;  // Enterif (whichCode == 8) returntrue;  // Backspaceif (whichCode == 0) returntrue;  // Nullif (whichCode == 9) returntrue;  // Tab

key = String.fromCharCode(whichCode);  // Get key value from key codeif ( strCheck.indexOf(key) == -1 ) returnfalse;  // Not a valid keyvar x = newString(fld.value);
if ( key == '.' )
{
    var exp = /\./;
    var a = x.search(exp);
    if ( a != -1 ) returnfalse;
}


}

// samer code on change  or on blur eventfunctionallow2decimal(obj){
    var v = parseFloat($(obj).val());



        if (isNaN(v)) {
            $(obj).value = '';
        } else {
            newVal = v.toFixed(2);
            if(newVal >= 100){
                $(obj).val( 100 );
            }else{
                $(obj).val(newVal);
            }

        }

}
//usage
  <input
        onkeypress="return numericFormat( this , event , '.');"
        onchange="allow2decimal(this)"
        value="0.1"
        id="factory_silk" name="factory_silk" />

Solution 4:

<html><head><scripttype="text/javascript">functionNumAndTwoDecimals(e, field) {  
        var val = field.value;  
        var re = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)$/g;  
        var re1 = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)/g;  
        if (re.test(val)) {  

        }  
        else {  
        val = re1.exec(val);  
        if (val) {  
        field.value = val[0];  
        }  
        else {  
        field.value = "";  
        }  
        }  
        }  
        </script></head><body><inputtype="text"name="text"onkeyup="NumAndTwoDecimals(event , this);"></body></html>

Solution 5:

$('.number').keypress(function(evt){
    var str = $(this).val();
    var index = str.indexOf('.');
    if(index==-1){index=0;}else{index= index+1;}
    var extrapoint = str.indexOf('.',index);
    if(extrapoint>0){$(this).val(str.slice(0,-1));}
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if(charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57))
        returnfalse;
    returntrue;
    var validNumber = new RegExp(/^\d*\.?\d*$/);
    var lastValid = $(this).val();
    if (validNumber.test($(this).val()))
    {
        lastValid = $(this).val();
    } 
    else
    {
        $(this).val(lastValid);
    }
});

Post a Comment for "Allow To Enter Only 2 Decimal Points Number"