Использование текущего подхода к регулярному выражению и замене:
Вы можете просто добавить функцию, которая будет использовать регулярное выражение и метод replace () , чтобы удалить все разделители запятых, а затем преобразовать входное значение в целое число, используя функцию parseInt () , когда вы готовы отправить форму следующим образом:
jQuery.noConflict();
jQuery('input.number').keyup(function(event) {
// format number
jQuery(this).val(function(index, value) {
return value
.replace(/\D/g, "")
.replace(/\B(?=(\d{3})+(?!\d))/g, ",")
;
});
});
jQuery('#btn').click(function(){
const valueToSubmit = parseInt(jQuery('input.number').val().replace(/,/, ""));
alert("Submitting the value " + valueToSubmit);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form role="search" id="default-search" action="#" novalidate>
<input class="number" name="price-from" placeholder="Cena od" maxlength = "11" min = "0">
<button type="button" id="btn">Submit number</button>
</form>
Использование метода toLocaleString:
Вы можете просто использовать метод toLocaleString () вместе с replace () метод, позволяющий автоматически добавлять разделители запятых к вашему входному значению, а затем преобразовывать их обратно в исходное значение, если вы хотите отправить входное значение на ваш сервер следующим образом:
jQuery.noConflict();
jQuery('input.number').on('input', function(e) {
e.target.value = parseInt(e.target.value.replace(/,/g, "")).toLocaleString();
});
jQuery('#btn').click(function() {
const valueToSubmit = parseInt(jQuery('input.number').val().replace(/,/g, ""));
alert("Submitting the value " + valueToSubmit);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form role="search" id="default-search" action="#" novalidate>
<input class="number" name="price-from" placeholder="Cena od" maxlength = "11" min = "0">
<button type="button" id="btn">Submit number</button>
</form>
При pure JavaScript вышеприведенный jQuery будет выглядеть следующим образом:
const input = document.querySelector('#default-search input[name="price-from"]');
const btn = document.getElementById('btn');
input.addEventListener('input', function() {
input.value = parseInt(input.value.replace(/,/g, "")).toLocaleString();
});
btn.addEventListener('click', function() {
const valueToSubmit = parseInt(input.value.replace(/,/g, ""));
alert("Submitting the value " + valueToSubmit);
})
<form role="search" id="default-search" action="#" novalidate>
<input class="number" name="price-from" placeholder="Cena od" maxlength = "11" min = "0">
<button type="button" id="btn">Submit number</button>
</form>
Использование объекта Intl.NumberFormat:
Другим аналогичным подходом для этого будет использование Intl. NumberFormat объект вместе с методом replace () для автоматического добавления разделителей запятых к вашему входному значению и последующего преобразования их обратно в исходное значение, когда вы хотите отправить входное значение на ваш сервер следующим образом:
$('input[name="price-from"]').on('input', function(e) {
e.target.value = new Intl.NumberFormat().format(parseInt(e.target.value.replace(/,/g, "")))
});
$('#btn').click(function() {
const valueToSubmit = parseInt($('input[name="price-from"]').val().replace(/,/g, ""));
alert("Submitting the value " + valueToSubmit);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form role="search" id="default-search" action="#" novalidate>
<input class="number" name="price-from" placeholder="Cena od" maxlength = "11" min = "0">
<button type="button" id="btn">Submit number</button>
</form>
При pure JavaScript вышеприведенный jQuery будет выглядеть следующим образом:
const input = document.querySelector('#default-search input[name="price-from"]');
const btn = document.getElementById('btn');
input.addEventListener('input', function() {
input.value = new Intl.NumberFormat().format(parseInt(input.value.replace(/,/g, "")))
});
btn.addEventListener('click', function() {
const valueToSubmit = parseInt(input.value.replace(/,/g, ""));
alert("Submitting the value " + valueToSubmit);
})
<form role="search" id="default-search" action="#" novalidate>
<input class="number" name="price-from" placeholder="Cena od" maxlength = "11" min = "0">
<button type="button" id="btn">Submit number</button>
</form>