JSFiddle - React, Tailwind, and code Playground
HTML
<html>
<head>
</head>
<body>
<input type="text" id="txtAmount"/>
</body>
</html>
JavaScript
$(function () {
$("#txtAmount").keydown(function () {
checkAndSetAmount("txtAmount");
});
$("#txtAmount").keyup(function () {
checkAndSetAmount("txtAmount");
});
});
function roundToDecimal(value, decimal) {
var number = new Number(value);
return number.toFixed(decimal);
}
function checkAndSetAmount(textboxId) {
var amount = $("#" + textboxId).val();
var amountLength = amount.length;
var cntDec = 0;
var lengthFirstDec = 0;
var finalAmount = "";
for (var i=0; i<amountLength; i++) {
var char = amount.charAt(i);
if (!isNaN(char) || (char == ".")) {
if (char == ".")
cntDec++;
if ((char == ".") && (cntDec == 1)) {
lengthFirstDec = i + 1;
finalAmount += char;
}
if (!isNaN(char))
finalAmount += char;
}
}
if ((cntDec == 1) && (amountLength > (lengthFirstDec + 2)))
finalAmount = roundToDecimal(finalAmount, 2);
$("#" + textboxId).val(finalAmount);
}