From ec6d69c27fe7dfa7949f552662649d84a606718d Mon Sep 17 00:00:00 2001 From: Florian Lentsch Date: Fri, 23 Apr 2021 15:34:10 +0200 Subject: [PATCH] Allow entering decimals (#830, PR #868) --- app/assets/javascripts/delta_input.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/delta_input.js b/app/assets/javascripts/delta_input.js index 0ae7f4a5..d0da30d8 100644 --- a/app/assets/javascripts/delta_input.js +++ b/app/assets/javascripts/delta_input.js @@ -19,7 +19,7 @@ function data_delta_update(el, direction) { var delta = $(el).data('delta'); var granularity = $(el).data('granularity'); - var val = $(el).val(); + var val = $(el).val().replace(',', '.'); var oldval = $.isNumeric(val) ? Number(val) : 0; var newval = oldval + delta*direction; @@ -31,10 +31,11 @@ function data_delta_update(el, direction) { $('button[data-increment='+id+']').attr('disabled', newval>=max ? 'disabled' : null); // warn when what was entered is not a number - $(el).toggleClass('error', val!='' && val!='.' && (!$.isNumeric(val) || val < 0)); + const erroneousValue = val!='' && val!='.' && (!$.isNumeric(val) || val < 0) + $(el).toggleClass('error', erroneousValue); // update field, unless the user is typing - if (!$(el).is(':focus')) { + if (!$(el).is(':focus') && !erroneousValue) { $(el).val(round_float(newval, granularity)); $(el).trigger('changed'); }