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");
|
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() {
|
test("text false without icon", function() {
|
||||||
expect( 1 );
|
expect( 1 );
|
||||||
$("#button").button({
|
$("#button").button({
|
||||||
|
@ -260,7 +260,11 @@ $.widget( "ui.button", {
|
|||||||
this.widget().toggleClass( "ui-state-disabled", !!value );
|
this.widget().toggleClass( "ui-state-disabled", !!value );
|
||||||
this.element.prop( "disabled", !!value );
|
this.element.prop( "disabled", !!value );
|
||||||
if ( 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;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user