При вводе длинных чисел в текстовое поле становится визуально понятнее и удобнее если числа автоматически бьются на разряды. Сделать такую функцию можно на JS с помощью регулярных выражений и jQuery.
<input id="sum" type="text" placeholder="Введите число">
<script>
function digits_int(target){
val = $(target).val().replace(/[^0-9]/g, '');
val = val.replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
$(target).val(val);
}
$(function($){
$('body').on('input', '#sum', function(e){
digits_int(this);
});
digits_int('#sum');
});
</script>
Пример:
Второй пример ограничивает ввод в поле числом с двумя знаками после точки (например:
1 000.00
).
<input id="sum" type="text" placeholder="Введите сумму">
<script>
function digits_float(target){
val = $(target).val().replace(/[^0-9.]/g, '');
if (val.indexOf(".") != '-1') {
val = val.substring(0, val.indexOf(".") + 3);
}
val = val.replace(/\B(?=(\d{3})+(?!\d))/g, ' ');
$(target).val(val);
}
$(function($){
$('body').on('input', '#sum', function(e){
digits_float(this);
});
digits_float('#sum');
});
</script>
Ваш код не работает даже в CodePen