Permalink
Browse files

Selectmenu: Don't render options with the `hidden` attribute

Fixes #15098
  • Loading branch information...
1 parent 9a4c057 commit a2b25ef6caae3e1a272214839b815a6387618124 @scottgonzalez scottgonzalez committed Nov 16, 2016
Showing with 30 additions and 0 deletions.
  1. +26 −0 tests/unit/selectmenu/core.js
  2. +4 −0 ui/widgets/selectmenu.js
@@ -376,4 +376,30 @@ QUnit.test( "Number pad input should change value", function( assert ) {
} );
} );
+QUnit.test( "Options with hidden attribute should not be rendered", function( assert ) {
+ var ready = assert.async();
+ assert.expect( 1 );
+
+ var button, menu, options,
+ element = $( "#speed" );
+
+ element.find( "option" ).eq( 1 ).prop( "hidden", true );
+ element.selectmenu();
+ button = element.selectmenu( "widget" );
+ menu = element.selectmenu( "menuWidget" );
+
+ button.simulate( "focus" );
+ setTimeout( function() {
+ button.trigger( "click" );
+ options = menu.children()
+ .map( function() {
+ return $( this ).text();
+ } )
+ .get();
+ assert.deepEqual( options, [ "Slower", "Medium", "Fast", "Faster" ], "correct elements" );
+
+ ready();
+ } );
+} );
+
} );
@@ -656,6 +656,10 @@ return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
var that = this,
data = [];
options.each( function( index, item ) {
+ if ( item.hidden ) {
+ return;
+ }
+
data.push( that._parseOption( $( item ), index ) );
} );
this.items = data;

0 comments on commit a2b25ef

Please sign in to comment.