Spinner: modified _spin and _setOption to call new method _trimValue to check for min/max values. Fixed #7264 - Spinner returns values beyond min and max, off by one

This commit is contained in:
beatryder 2011-06-13 20:42:45 -05:00 committed by gnarf
parent e549e18fc2
commit b0182d7822

View File

@ -258,12 +258,29 @@ $.widget( "ui.spinner", {
: 2 : 2
: 1); : 1);
// clamp the new value
newVal = this._trimValue( newVal );
if ( this._trigger( "spin", event, { value: newVal } ) !== false) { if ( this._trigger( "spin", event, { value: newVal } ) !== false) {
this.value( newVal ); this.value( newVal );
this.counter++; this.counter++;
} }
}, },
_trimValue: function( value ) {
var options = this.options;
if ( value > options.max) {
return options.max;
}
if ( value < options.min ) {
return options.min;
}
return value;
},
_stop: function( event ) { _stop: function( event ) {
this.counter = 0; this.counter = 0;
if ( this.timer ) { if ( this.timer ) {
@ -280,13 +297,7 @@ $.widget( "ui.spinner", {
_setOption: function( key, value ) { _setOption: function( key, value ) {
if ( key === "value") { if ( key === "value") {
value = this._parse( value ); value = this._trimValue( this._parse(value) );
if ( value < this.options.min ) {
value = this.options.min;
}
if ( value > this.options.max ) {
value = this.options.max;
}
} }
if ( key === "disabled" ) { if ( key === "disabled" ) {