diff --git a/public/viewjs/purchase.js b/public/viewjs/purchase.js index 521df441..53d99a30 100644 --- a/public/viewjs/purchase.js +++ b/public/viewjs/purchase.js @@ -402,7 +402,7 @@ if (Grocy.Components.DateTimePicker2) Grocy.Components.DateTimePicker2.GetInputElement().trigger("input"); } -$('#price').on('change', function(e) +$('#price').on('keyup', function(e) { refreshPriceHint(); }); @@ -431,12 +431,15 @@ function refreshPriceHint() return; } - if ($("input[name='price-type']:checked").val() == "total-price") + if ($("input[name='price-type']:checked").val() == "total-price" || $("#qu_id").attr("data-destination-qu-name") != $("#qu_id option:selected").text()) { var price = parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices); - price = parseFloat(price / $('#display_amount').val()).toFixed(Grocy.UserSettings.stock_decimal_places_prices); + if ($("input[name='price-type']:checked").val() == "total-price") + { + price = parseFloat(price / $('#display_amount').val()).toFixed(Grocy.UserSettings.stock_decimal_places_prices); + } - $('#price-hint').text(__t('means %1$s per %2$s', price.toLocaleString({ minimumFractionDigits: 2, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), $("#qu_id").attr("data-destination-qu-name"))); + $('#price-hint').text(__t('means %1$s per %2$s', price.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: 2, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), $("#qu_id").attr("data-destination-qu-name"))); } else { @@ -522,4 +525,5 @@ $('#qu_id').on('change', function(e) var priceTypeUnitPrice = $("#price-type-unit-price"); var priceTypeUnitPriceLabel = $("[for=" + priceTypeUnitPrice.attr("id") + "]"); priceTypeUnitPriceLabel.text($("#qu_id option:selected").text() + " " + __t("price")); + refreshPriceHint(); });