From 21125249ea09bf711b8c1bc35d99657dee02eca0 Mon Sep 17 00:00:00 2001 From: Jonathan Rosenbaum Date: Thu, 27 Jul 2017 19:12:19 +0000 Subject: [PATCH] Makes it even nicer thanks to this good read: https://stackoverflow.com/questions/16791940/jquery-ui-spinner-able-to-exceed-max-by-keyboard --- js/transaction.js | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/js/transaction.js b/js/transaction.js index 2451af7..f57a36f 100644 --- a/js/transaction.js +++ b/js/transaction.js @@ -722,7 +722,8 @@ $(function() { $("#volunteer_hours").prop("title",title).html("Volunteer Hours"); $(".ui-spinner").show(); - + + /* $( "#redeemable_hours" ).spinner({ step: 0.10, numberFormat: "n", @@ -737,9 +738,31 @@ $(function() { } }).show(); - - - //$("#redeemable_hours").html(obj.redeemable_hours); + */ + + $("#redeemable_hours").spinner({ + step: 0.10, + numberFormat: "n", + max: obj.current_year_volunteer_hours, + min: 0 + }).on('input', function () { + if ($(this).data('onInputPrevented')) return; + var val = this.value, + $this = $(this), + max = $this.spinner('option', 'max'), + min = $this.spinner('option', 'min'); + // We want only number, no alpha. + // We set it to previous default value. + if (!val.match(/^[+-]?[\d]{0,}$/)) val = $(this).data('defaultValue'); + this.value = val > max ? max : val < min ? min : val; + }).on('keydown', function (e) { + // we set default value for spinner. + if (!$(this).data('defaultValue')) $(this).data('defaultValue', this.value); + // To handle backspace + $(this).data('onInputPrevented', e.which === 8 ? true : false); + }).show(); + + } else { $("#volunteer_hours").prop("title","").empty(); $("#redeemable_hours").hide();