mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-10-05 01:44:18 +00:00
Button: Remove ui-state-active
when disabling buttons
Fixes #9602 Closes gh-1151
This commit is contained in:
parent
712ac17fc7
commit
23d7d50f37
@ -38,6 +38,41 @@ test("disabled, null", function() {
|
||||
deepEqual(true, $("#radio02").prop("disabled"), "element is not disabled");
|
||||
});
|
||||
|
||||
test( "disabled, ui-state-active is removed unless checkbox or radio", function() {
|
||||
expect( 12 );
|
||||
var elements = [
|
||||
$( "<input type='button'>" ),
|
||||
$( "<button></button>" ),
|
||||
$( "<a></a>" ),
|
||||
$( "<div></div>" ),
|
||||
$( "<input type='checkbox' id='checkbox' checked><label for='checkbox'></label>" ),
|
||||
$( "<input type='radio' id='radio' checked><label for='radio'></label>" )
|
||||
];
|
||||
|
||||
$.each( elements, function() {
|
||||
var element = $( this ).first().button(),
|
||||
buttonElement = element.button( "widget" ),
|
||||
elementType = element.prop( "nodeName" ).toLowerCase();
|
||||
|
||||
if ( element.is( "input" ) ) {
|
||||
elementType += ":" + element.attr( "type" );
|
||||
}
|
||||
|
||||
element.trigger( "mousedown" );
|
||||
ok( buttonElement.hasClass( "ui-state-active" ),
|
||||
"[" + elementType + "] has ui-state-active class after mousedown." );
|
||||
|
||||
element.button( "disable" );
|
||||
if ( element.is( "[type=checkbox], [type=radio]" ) ) {
|
||||
ok( buttonElement.hasClass( "ui-state-active" ),
|
||||
"Disabled [" + elementType + "] has ui-state-active class." );
|
||||
} else {
|
||||
ok( !buttonElement.hasClass( "ui-state-active" ),
|
||||
"Disabled [" + elementType + "] does not have ui-state-active class." );
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
test("text false without icon", function() {
|
||||
expect( 1 );
|
||||
$("#button").button({
|
||||
|
@ -260,7 +260,11 @@ $.widget( "ui.button", {
|
||||
this.widget().toggleClass( "ui-state-disabled", !!value );
|
||||
this.element.prop( "disabled", !!value );
|
||||
if ( value ) {
|
||||
this.buttonElement.removeClass( "ui-state-focus" );
|
||||
if ( this.type === "checkbox" || this.type === "radio" ) {
|
||||
this.buttonElement.removeClass( "ui-state-focus" );
|
||||
} else {
|
||||
this.buttonElement.removeClass( "ui-state-focus ui-state-active" );
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user