Skip to content

Commit dfc5d32

Browse files
author
Gabriel Schulhof
committed
Slider: Set/unset class "ui-state-disabled" in sync with disabled option
Fixes jquery-archivegh-6857
1 parent d14b90d commit dfc5d32

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

js/widgets/forms/slider.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,9 @@ $.widget( "mobile.slider", $.extend( {
581581
_setDisabled: function( value ) {
582582
value = !!value;
583583
this.element.prop( "disabled", value );
584-
this.slider.toggleClass( "ui-state-disabled" ).attr( "aria-disabled", value );
584+
this.slider
585+
.toggleClass( "ui-state-disabled", value )
586+
.attr( "aria-disabled", value );
585587
}
586588

587589
}, $.mobile.behaviors.formReset ) );

tests/unit/slider/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ <h2 id="qunit-userAgent"></h2>
117117
<label for="remove-events-slider">Input slider:</label>
118118
<input type="range" name="remove-events-slider" id="remove-events-slider" value="25" min="0" max="100"/>
119119
</div>
120+
121+
<label>Input slider:
122+
<input type="range" name="disable-test" id="disable-test" value="17" min="0" max="100"/>
123+
</label>
124+
120125
</div>
121126

122127
<div id="enhancetest">

tests/unit/slider/slider_core.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,28 @@
6666
test( "slider input is not wrapped in div.ui-input-text", function() {
6767
ok( ! $( "#textinput-test" ).parents().is( "div.ui-input-text" ), "slider input is not wrapped in div.ui-input-text" );
6868
});
69-
69+
70+
test( "slider is enabled/disabled correctly", function() {
71+
var slider = $( "#disable-test" ),
72+
track = slider.siblings( "div" );
73+
74+
testDisabled = function( prefix, expectedDisabled ) {
75+
deepEqual( !!track.attr( "aria-disabled" ), expectedDisabled,
76+
prefix + "'aria-disabled' is " + expectedDisabled );
77+
deepEqual( !!slider.attr( "disabled" ), expectedDisabled,
78+
prefix + "'disabled' property is " + expectedDisabled );
79+
deepEqual( track.hasClass( "ui-state-disabled" ), expectedDisabled,
80+
prefix + "track class 'ui-state-disabled' is " +
81+
( expectedDisabled ? "on" : "off" ) );
82+
};
83+
84+
testDisabled( "Initially: ", false );
85+
slider.slider( "option", "disabled", true );
86+
testDisabled( "After setting option 'disabled' to true: ", true );
87+
slider.slider( "option", "disabled", true );
88+
testDisabled( "After setting option 'disabled' to true a second time: ", true );
89+
});
90+
7091
test( "refresh is triggered on mouseup", function() {
7192
expect( 1 );
7293
var slider = $( "#mouseup-refresh" );

0 commit comments

Comments
 (0)