diff options
author | Felix Nagel <info@felixnagel.com> | 2011-03-20 18:14:25 +0100 |
---|---|---|
committer | Felix Nagel <info@felixnagel.com> | 2011-03-20 18:14:25 +0100 |
commit | 7624538a97eef97be01ef72a65cc058aea70da43 (patch) | |
tree | 3cf721cf34f396829eaa51773c0d195a10b2035f | |
parent | 1e071759783ee6272cdbffc6a978013fb4aefa0e (diff) | |
download | jquery-ui-7624538a97eef97be01ef72a65cc058aea70da43.tar.gz jquery-ui-7624538a97eef97be01ef72a65cc058aea70da43.zip |
fixed: problem with UTF-8 non-english chars as optgroup labels
-rw-r--r-- | ui/jquery.ui.selectmenu.js | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js index 1d876a73f..a1ad54b4c 100644 --- a/ui/jquery.ui.selectmenu.js +++ b/ui/jquery.ui.selectmenu.js @@ -247,7 +247,7 @@ $.widget("ui.selectmenu", { selected: $(this).attr('selected'), classes: $(this).attr('class'), typeahead: $(this).attr('typeahead'), - parentOptGroup: $(this).parent('optgroup').attr('label'), + parentOptGroup: $(this).parent('optgroup'), bgImage: o.bgImage.call($(this)) }); }); @@ -292,16 +292,15 @@ $.widget("ui.selectmenu", { }); // optgroup or not... - if (selectOptionData[i].parentOptGroup) { - // whitespace in the optgroupname must be replaced, otherwise the li of existing optgroups are never found - var optGroupName = self.widgetBaseClass + '-group-' + selectOptionData[i].parentOptGroup.replace(/[^a-zA-Z0-9]/g, ""); - if (this.list.find('li.' + optGroupName).size()) { - this.list.find('li.' + optGroupName + ':last ul').append(thisLi); + if ( selectOptionData[i].parentOptGroup.length ) { + var optGroupName = self.widgetBaseClass + '-group-' + this.element.find( 'optgroup' ).index( selectOptionData[i].parentOptGroup ); + if (this.list.find( 'li.' + optGroupName ).length ) { + this.list.find( 'li.' + optGroupName + ':last ul' ).append( thisLi ); } else { - $('<li role="presentation" class="' + self.widgetBaseClass + '-group ' + optGroupName + '"><span class="' + self.widgetBaseClass + '-group-label">' + selectOptionData[i].parentOptGroup + '</span><ul></ul></li>') - .appendTo(this.list) - .find('ul') - .append(thisLi); + $(' <li role="presentation" class="' + self.widgetBaseClass + '-group ' + optGroupName + '"><span class="' + self.widgetBaseClass + '-group-label">' + selectOptionData[i].parentOptGroup.attr('label') + '</span><ul></ul></li> ') + .appendTo( this.list ) + .find( 'ul' ) + .append( thisLi ); } } else { thisLi.appendTo(this.list); |