Это функционально здесь без каких-либо плагинов. Что-то, что вы можете настроить, чтобы соответствовать вашему реальному проекту. Надеемся, что следующие стандарты HTML наконец приведут к встроенной локализации в полях ввода.
[ОБНОВЛЕНИЕ] Использование менее задержанного Onchange вместо обработчиков событий keyup позволит упростить ввод и станет более удобным для пользователя. И позволял печатать, используя запятую, которая будет заменена на ожидаемую точку по умолчанию, чтобы функция parseFloat воспринимала это как допустимое число. Таким образом, мы могли бы использовать шаблон регулярного выражения для форматирования значения валюты.
$(document).ready(function(){
$('form').on('change','#base,#ticket',function() {
var ticket=parseFloat($('#ticket').val().replace(',', '.'));
calculate();
if(!isNaN(ticket)){
$('#ticket').val(EuroFormat(ticket));
}
});
function calculate(e) {
var ticket=parseFloat($('#ticket').val().replace(',', '.'));
var total = parseFloat($('#base').val()) * ticket * 0.38;
if(!isNaN(total)){
$("#cost").val(EuroFormat(total));
}
}
function EuroFormat(num) {
return ( num.toFixed(2).replace('.', ',').replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1.') + ' €' )
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<!-- simple number to start the calculation -->
<label>Natural Number</label>
<input type="text" id="base" autocomplete="off"/>
<br>
<!-- currency including the cents -->
<label>Currency value</label>
<input type="text" id="ticket" autocomplete="off"/>
<br>
<!-- If the first field is "1" and the second is "1,00", this field has a value of 0.38 cents. -->
<label>Currency total</label>
<input type="text" id="cost" readonly"/></form>