diff options
-rw-r--r-- | tests/unit/selectmenu/selectmenu_defaults.js | 1 | ||||
-rw-r--r-- | tests/unit/selectmenu/selectmenu_options.js | 10 | ||||
-rw-r--r-- | tests/visual/selectmenu/methods.html | 12 | ||||
-rw-r--r-- | tests/visual/selectmenu/option.html | 63 | ||||
-rw-r--r-- | ui/jquery.ui.selectmenu.js | 21 |
5 files changed, 18 insertions, 89 deletions
diff --git a/tests/unit/selectmenu/selectmenu_defaults.js b/tests/unit/selectmenu/selectmenu_defaults.js index a0f4f985e..9f6a1a964 100644 --- a/tests/unit/selectmenu/selectmenu_defaults.js +++ b/tests/unit/selectmenu/selectmenu_defaults.js @@ -8,7 +8,6 @@ commonWidgetTests( "selectmenu", { at: "left bottom", collision: "none" }, - value: null, // callbacks, create: null, open: null, diff --git a/tests/unit/selectmenu/selectmenu_options.js b/tests/unit/selectmenu/selectmenu_options.js index 913d1b4c9..9fd053673 100644 --- a/tests/unit/selectmenu/selectmenu_options.js +++ b/tests/unit/selectmenu/selectmenu_options.js @@ -33,14 +33,4 @@ ok(this.element.selectmenu("option", "dropdown", false), "accepts false"); }); - test("value option", function () { - expect(1); - - var value = this.element.find("option").eq(0).text(); - - this.element.selectmenu("option", "value", value); - - equals(this.element.selectmenu("option", "value"), value, "should be set to " + value); - }); - })(jQuery); diff --git a/tests/visual/selectmenu/methods.html b/tests/visual/selectmenu/methods.html index b3e5a42e5..3be5336bd 100644 --- a/tests/visual/selectmenu/methods.html +++ b/tests/visual/selectmenu/methods.html @@ -15,16 +15,23 @@ <script> $(function() { var mySelectmenu = $('select').selectmenu(); + + $('select').show(); $("#destroy").click( function() { mySelectmenu.selectmenu("destroy"); }); - $("#refresh").click( function() { + $("#refresh_add").click( function() { mySelectmenu.append('<option value="fastsound">Faster than sound</option>'); mySelectmenu.selectmenu("refresh"); }); + $("#refresh_selected").click( function() { + mySelectmenu[0].selectedIndex = 0; + mySelectmenu.selectmenu("refresh"); + }); + $("#open").click( function() { mySelectmenu.selectmenu("open"); return false; @@ -62,7 +69,8 @@ </form> <br /> <button id="destroy">Destroy</button> -<button id="refresh">Add item and refresh</button> +<button id="refresh_add">Add item and refresh</button> +<button id="refresh_selected">Change to first item</button> <button id="open">Open</button> <button id="close">Close</button> diff --git a/tests/visual/selectmenu/option.html b/tests/visual/selectmenu/option.html deleted file mode 100644 index 308a9ebc2..000000000 --- a/tests/visual/selectmenu/option.html +++ /dev/null @@ -1,63 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <title>jQuery UI Selectmenu - Option functionality</title> - <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css"> - <script src="../../../jquery-1.7.1.js"></script> - <script src="../../../ui/jquery.ui.core.js"></script> - <script src="../../../ui/jquery.ui.widget.js"></script> - <script src="../../../ui/jquery.ui.position.js"></script> - <script src="../../../ui/jquery.ui.button.js"></script> - <script src="../../../ui/jquery.ui.menu.js"></script> - <script src="../../../ui/jquery.ui.selectmenu.js"></script> - <link rel="stylesheet" href="../../../demos/demos.css"> - <script> - $(function() { - var mySelectmenu = $('select').selectmenu(); - - $("#value").click( function() { - mySelectmenu.selectmenu("option", "value", "Faster"); - }); - - $("#dropdown").toggle( function() { - mySelectmenu.selectmenu("option", "dropdown", false); - }, function() { - mySelectmenu.selectmenu("option", "dropdown", true); - }); - }); - </script> - <style> - form { margin: 20px 0 0 0 } - fieldset { border: 0; } - label { display: block; } - select { width: 200px; } - .overflow ul { height: 200px; overflow: auto; } - </style> -</head> -<body> - -<div class="demo"> - -<form action="#"> - <fieldset> - <label for="speed">Select a speed:</label> - <select name="speed" id="speed"> - <option value="Slower">Slower</option> - <option value="Slow">Slow</option> - <option value="Medium" selected="selected">Medium</option> - <option value="Fast">Fast</option> - <option value="Faster">Faster</option> - </select> - </fieldset> -</form> -<br /> -<!-- <button id="dropdown">Toggle dropdown style</button> --> -<button id="value">Set option value = 'Faster'</button> - -</div><!-- End demo --> - - - -</body> -</html> diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js index 4b774e179..fbfd92bd0 100644 --- a/ui/jquery.ui.selectmenu.js +++ b/ui/jquery.ui.selectmenu.js @@ -27,7 +27,6 @@ $.widget( "ui.selectmenu", { at: "left bottom", collision: "none" }, - value: null, // callbacks open: null, focus: null, @@ -43,13 +42,6 @@ $.widget( "ui.selectmenu", { // array of button and menu id's this.ids = { id: selectmenuId, button: selectmenuId + '-button', menu: selectmenuId + '-menu' }; - // set current value - if ( this.options.value ) { - this.element[0].value = this.options.value; - } else { - this.options.value = this.element[0].value; - } - // catch click event of the label this._bind({ 'click': function( event ) { @@ -131,7 +123,7 @@ $.widget( "ui.selectmenu", { item = ui.item.data( "item.selectmenu" ), oldIndex = that.element[0].selectedIndex; - that._setOption( "value", item.value ); + that._setIndex( item.index ); that._trigger( "select", event, { item: item } ); if ( item.index != oldIndex ) { @@ -173,6 +165,8 @@ $.widget( "ui.selectmenu", { this._renderMenu( this.menu, this.items ); this.menu.menu( "refresh" ); + // button option label wont work here + this.button.children( '.ui-button-text' ).text( this.items[ this.element[0].selectedIndex ].label ); // adjust ARIA this.menu.find( "li" ).not( '.ui-selectmenu-optgroup' ).find( 'a' ).attr( 'role', 'option' ); @@ -386,6 +380,11 @@ $.widget( "ui.selectmenu", { } } }, + + _setIndex: function( index ) { + this.element[0].selectedIndex = index; + this.button.button( "option", "label", this.items[ index ].label ); + }, _setOption: function( key, value ) { this._super( key, value ); @@ -393,10 +392,6 @@ $.widget( "ui.selectmenu", { if ( key === "appendTo" ) { this.menuWrap.appendTo( $( value || "body", this.element[0].ownerDocument )[0] ); } - if ( key === "value" && value !== undefined ) { - this.element[0].value = value; - this.button.children( '.ui-button-text' ).text( this.items[ this.element[0].selectedIndex ].label ); - } if ( key === "disabled" ) { this.button.button( "option", "disabled", value ); this.menu.menu( "option", "disabled", value ); |