Вы можете использовать jQuery и сделать это.Вы можете добавить .00, но для целого числа целое число, JS будет удалять его каждый раз, когда вы преобразуете его обратно в тип числа.
$("#ProfitMargin")
.focusout(function() {
var number = Number($("#ProfitMargin").val());
alert(number);
var isInteger = Number.isInteger(number);
alert(isInteger);
var floatingNumber = number;
if(isInteger)
floatingNumber = number + ".00";
alert(floatingNumber);
$("#ProfitMargin").val(floatingNumber.toFixed(2));
});
Лучший способ добиться этого - использовать тип текстового поля, но вы будетесвободная функция шага тогда.Также ваше значение {$ smarty.post.profitmargin} должно измениться на текстовое.
Таким образом, ваш код изменится на -
<span style="font-weight:bold;">Profit Margin: </span><input type='text' placeholder='0.00' id='ProfitMargin' name=profitmargin >
<span style="font-weight:bold;">%</span>
$("#ProfitMargin")
.focusout(function() {
var number = Number($("#ProfitMargin").val());
alert(number);
var isInteger = Number.isInteger(number);
alert(isInteger);
var floatingNumber = number;
if(isInteger)
floatingNumber = number + ".00";
alert(floatingNumber);
$("#ProfitMargin").val(floatingNumber);
});
Вот рабочий пример - https://jsfiddle.net/s7en2amz/