mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Button: Fixing handling of the disabled options on refresh method calls. Fixed #8828 - Button: Refresh does not re-enable disabled button.
This commit is contained in:
parent
cb748b4a6f
commit
93abe02b60
@ -13,4 +13,40 @@ test("destroy", function() {
|
||||
});
|
||||
});
|
||||
|
||||
test( "refresh: Ensure disabled state is preserved correctly.", function() {
|
||||
expect( 8 );
|
||||
|
||||
var element = $( "<a href='#'></a>" );
|
||||
element.button({ disabled: true }).button( "refresh" );
|
||||
ok( element.button( "option", "disabled" ), "Anchor button should remain disabled after refresh" ); //See #8237
|
||||
|
||||
element = $( "<div></div>" );
|
||||
element.button({ disabled: true }).button( "refresh" );
|
||||
ok( element.button( "option", "disabled" ), "<div> buttons should remain disabled after refresh" );
|
||||
|
||||
element = $( "<button></button>" );
|
||||
element.button( { disabled: true} ).button( "refresh" );
|
||||
ok( element.button( "option", "disabled" ), "<button> should remain disabled after refresh");
|
||||
|
||||
element = $( "<input type='checkbox'>" );
|
||||
element.button( { disabled: true} ).button( "refresh" );
|
||||
ok( element.button( "option", "disabled" ), "Checkboxes should remain disabled after refresh");
|
||||
|
||||
element = $( "<input type='radio'>" );
|
||||
element.button( { disabled: true} ).button( "refresh" );
|
||||
ok( element.button( "option", "disabled" ), "Radio buttons should remain disabled after refresh");
|
||||
|
||||
element = $( "<button></button>" );
|
||||
element.button( { disabled: true} ).prop( "disabled", false ).button( "refresh" );
|
||||
ok( !element.button( "option", "disabled" ), "Changing a <button>'s disabled property should update the state after refresh."); //See #8828
|
||||
|
||||
element = $( "<input type='checkbox'>" );
|
||||
element.button( { disabled: true} ).prop( "disabled", false ).button( "refresh" );
|
||||
ok( !element.button( "option", "disabled" ), "Changing a checkbox's disabled property should update the state after refresh.");
|
||||
|
||||
element = $( "<input type='radio'>" );
|
||||
element.button( { disabled: true} ).prop( "disabled", false ).button( "refresh" );
|
||||
ok( !element.button( "option", "disabled" ), "Changing a radio button's disabled property should update the state after refresh.");
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
|
@ -72,12 +72,4 @@ test( "#7534 - Button label selector works for ids with \":\"", function() {
|
||||
ok( group.find( "label" ).is( ".ui-button" ), "Found an id with a :" );
|
||||
});
|
||||
|
||||
test( "#8237 - Anchor tags lose disabled state when refreshed", function() {
|
||||
expect( 1 );
|
||||
var element = $( "<a id='a8237'></a>" ).appendTo( "#qunit-fixture" );
|
||||
|
||||
element.button({ disabled: true }).button( "refresh" );
|
||||
ok( element.button( "option", "disabled" ), "Anchor button should remain disabled after refresh" );
|
||||
});
|
||||
|
||||
})( jQuery );
|
||||
|
4
ui/jquery.ui.button.js
vendored
4
ui/jquery.ui.button.js
vendored
@ -284,7 +284,9 @@ $.widget( "ui.button", {
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
var isDisabled = this.element.is( ":disabled" ) || this.element.hasClass( "ui-button-disabled" );
|
||||
//See #8237 & #8828
|
||||
var isDisabled = this.element.is( "input, button" ) ? this.element.is( ":disabled" ) : this.element.hasClass( "ui-button-disabled" );
|
||||
|
||||
if ( isDisabled !== this.options.disabled ) {
|
||||
this._setOption( "disabled", isDisabled );
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user