Permalink
Browse files

Slider: Fixed max value miscalculation

Fixes #12852
Closes gh-1664
  • Loading branch information...
mukulhase authored and scottgonzalez committed Feb 11, 2016
1 parent bff8277 commit a1905e2c5ed6e61e6a7206e005de9dda4f7135d0
Showing with 24 additions and 2 deletions.
  1. +18 −1 tests/unit/slider/options.js
  2. +6 −1 ui/widgets/slider.js
@@ -43,7 +43,7 @@ test( "disabled", function( assert ) {
} );
test( "max", function() {
expect( 5 );
expect( 7 );
element = $( "<div></div>" );
options = {
@@ -87,6 +87,23 @@ test( "max", function() {
ok( element.slider( "value" ) === options.max, "value method will max, step is changed and step is float" );
element.slider( "destroy" );
options = {
max: 10.75,
min: 1.22,
orientation: "horizontal",
step: 0.01,
value: 10.75
};
element.slider( options );
ok( element.slider( "value" ) === options.max, "value method will max, step is changed, step is float and max is float" );
element.slider( "destroy" );
options.max = 10.749999999;
element.slider( options );
ok( element.slider( "value" ) === 10.74, "value method will max, step is changed, step is float, max is float and not divisible" );
element.slider( "destroy" );
} );
test( "min", function() {
@@ -544,8 +544,13 @@ return $.widget( "ui.slider", $.ui.mouse, {
var max = this.options.max,
min = this._valueMin(),
step = this.options.step,
aboveMin = Math.floor( ( +( max - min ).toFixed( this._precision() ) ) / step ) * step;
aboveMin = Math.round( ( max - min ) / step ) * step;
max = aboveMin + min;
if ( max > this.options.max ) {
//If max is not divisible by step, rounding off may increase its value
max -= step;
}
this.max = parseFloat( max.toFixed( this._precision() ) );
},

0 comments on commit a1905e2

Please sign in to comment.