Jquery کے ساتھ آٹو فارمیٹنگ کرنسی

اگر ضرورت ہو تو کوما اور اعشاریوں کے ساتھ کرنسی ان پٹ فیلڈ کو آٹو فارمیٹ کریں۔ متن کو کوما کے ساتھ خود بخود فارمیٹ کیا جاتا ہے اور کرسر کو واپس وہاں رکھ دیا جاتا ہے جہاں صارف فارمیٹنگ کے بعد چھوڑ دیتا ہے بمقابلہ کرسر ان پٹ کے آخر میں منتقل ہوتا ہے۔ تصدیق KeyUp پر ہے اور بلر پر حتمی توثیق کی جاتی ہے۔

ایچ ٹی ایم ایل

<input type="text" class="currency">

جاوا اسکرپٹ

$(".currency").on({  
    keyup: function() {  
        let input_val = $(this).val();  
        input_val = numberToCurrency(input_val);  
        $(this).val(input_val);  
    },  
    blur: function() {   
        let input_val = $(this).val();  
        input_val = numberToCurrency(input_val, true, true);  
        $(this).val(input_val);  
    }  
});  
  
var numberToCurrency = function(input_val, fixed = false, blur = false) {  
    // don't validate empty input  
    if(!input_val) {  
        return "";  
    }  
      
    if(blur) {  
        if(input_val === "" || input_val == 0) { return 0; }  
    }  
  
    if(input_val.length == 1) {  
        return parseInt(input_val);  
    }  
  
    input_val = ''+input_val;  
      
    let negative = '';  
    if(input_val.substr(0, 1) == '-'){  
        negative = '-';  
    }  
    // check for decimal  
    if(input_val.indexOf(".") >= 0) {  
        // get position of first decimal  
        // this prevents multiple decimals from  
        // being entered  
        var decimal_pos = input_val.indexOf(".");  
  
        // split number by decimal point  
        var left_side = input_val.substring(0, decimal_pos);  
        var right_side = input_val.substring(decimal_pos);  
  
        // add commas to left side of number  
        left_side = left_side.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");  
  
        if(fixed && right_side.length > 3) {  
            right_side = parseFloat(0+right_side).toFixed(2);  
            right_side =  right_side.substr(1, right_side.length);  
        }  
  
        // validate right side  
        right_side = right_side.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");  
  
        // Limit decimal to only 2 digits  
        if(right_side.length > 2) {  
            right_side = right_side.substring(0, 2);  
        }  
      
        if(blur && parseInt(right_side) == 0) {  
            right_side = '';  
        }  
  
        // join number by.  
        // input_val = left_side + "." + right_side;  
  
        if(blur && right_side.length < 1) {  
            input_val = left_side;  
        } else {  
            input_val = left_side + "." + right_side;  
        }  
    } else {  
        // no decimal entered  
        // add commas to number  
        // remove all non-digits  
        input_val = input_val.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",");  
    }  
  
    if(input_val.length > 1 && input_val.substr(0, 1) == '0' && input_val.substr(0, 2) != '0.') {  
        input_val = input_val.substr(1, input_val.length);  
    } else if(input_val.substr(0, 2) == '0,') {  
        input_val = input_val.substr(2, input_val.length);  
    }  
      
    return negative+input_val;  
};