можно чтото типа такого написать, но это не очень кроссплатформенный способ)))
https://codepen.io/lastuniverse/pen/QWQjMPN?editor...
<body>
<input type="text">
<script>
let inp = document.querySelector('input');
inp.oninput = function(e) {
const val = inp.value.replace(/[^\d\.]/g, '');
const num = parseFloat(val);
const str = (num!==num?'0':num.toString())+(e.data=='.'?'.':'');
inp.value = str + ' рублей';
if(inp.selectionStart>str.length){
inp.focus();
inp.selectionStart=str.length;
inp.selectionEnd=str.length;
}
};
</script>
</body>
но этот способ для использования требует доработки логики. например:
- могут ли быть введены дробные числа?
- сколько может быть знаков после запятой?
- правильно обрабатывать попытки ввести несколько точек
- что используется для разделения целой и дробной части (точка?запятая? обе вместе?)
- и т.д.
Итого, наиболее правильным способом мне видится способ предложенный пользователем
Чипекве , но его вы уже сами делайте