Skip to content
Permalink
Browse files

Selectmenu: introduce _setText helper function to improve handling of…

… empty strings
  • Loading branch information...
fnagel committed Dec 14, 2012
1 parent 21e46b8 commit e2b5123f37449bacb01e564bfc17897f07537ffa
Showing with 17 additions and 12 deletions.
  1. +17 −12 ui/jquery.ui.selectmenu.js
@@ -84,10 +84,10 @@ $.widget( "ui.selectmenu", {
}));

this.buttonText = $( "<span>", {
"class": "ui-selectmenu-text" ,
html: this.element.find( "option:selected" ).text() || "&#160;"
"class": "ui-selectmenu-text"
})
.appendTo( this.button );
this._setText( this.buttonText, this.element.find( "option:selected" ).text() );

// wrap and insert new button
this.buttonWrap = $( "<span>", {
@@ -260,17 +260,23 @@ $.widget( "ui.selectmenu", {
},

_renderItem: function( ul, item ) {
var li = $( "<li />" ).data( "ui-selectmenu-item", item );
var li = $( "<li />" ).data( "ui-selectmenu-item", item ),
a = $( "<a />", { href: "#" });

if ( item.disabled ) {
li.addClass( "ui-state-disabled" );
}
li.append( $( "<a />", {
html: item.label,
href: "#"
})
);
this._setText( a, item.label );

return li.append( a ).appendTo( ul );
},

return li.appendTo( ul );
_setText: function( element, value ) {
if ( value ) {
element.text( value );
} else {
element.html( "&#160;" );
}
},

_move: function( direction, event ) {
@@ -388,8 +394,7 @@ $.widget( "ui.selectmenu", {
},

_setSelected: function( item ) {
// update button text
this.buttonText.html( item.label );
this._setText( this.buttonText, item.label );
// change ARIA attr
this.menuItems.find( "a" ).attr( "aria-selected", false );
this.menuItems.eq( item.index ).find( "a" ).attr( "aria-selected", true );
@@ -437,7 +442,7 @@ $.widget( "ui.selectmenu", {
element: option,
index: index,
value: option.attr( "value" ),
label: option.text() || "&#160;",
label: option.text(),
optgroup: optgroup.attr( "label" ) || "",
disabled: optgroup.attr( "disabled" ) || option.attr( "disabled" )
});

0 comments on commit e2b5123

Please sign in to comment.
You can’t perform that action at this time.