Skip to content

Commit a2b25ef

Browse files
committed
Selectmenu: Don't render options with the hidden attribute
Fixes #15098
1 parent 9a4c057 commit a2b25ef

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

tests/unit/selectmenu/core.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,4 +376,30 @@ QUnit.test( "Number pad input should change value", function( assert ) {
376376
} );
377377
} );
378378

379+
QUnit.test( "Options with hidden attribute should not be rendered", function( assert ) {
380+
var ready = assert.async();
381+
assert.expect( 1 );
382+
383+
var button, menu, options,
384+
element = $( "#speed" );
385+
386+
element.find( "option" ).eq( 1 ).prop( "hidden", true );
387+
element.selectmenu();
388+
button = element.selectmenu( "widget" );
389+
menu = element.selectmenu( "menuWidget" );
390+
391+
button.simulate( "focus" );
392+
setTimeout( function() {
393+
button.trigger( "click" );
394+
options = menu.children()
395+
.map( function() {
396+
return $( this ).text();
397+
} )
398+
.get();
399+
assert.deepEqual( options, [ "Slower", "Medium", "Fast", "Faster" ], "correct elements" );
400+
401+
ready();
402+
} );
403+
} );
404+
379405
} );

ui/widgets/selectmenu.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -656,6 +656,10 @@ return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
656656
var that = this,
657657
data = [];
658658
options.each( function( index, item ) {
659+
if ( item.hidden ) {
660+
return;
661+
}
662+
659663
data.push( that._parseOption( $( item ), index ) );
660664
} );
661665
this.items = data;

0 commit comments

Comments
 (0)