aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/unit/selectmenu/selectmenu_defaults.js1
-rw-r--r--tests/unit/selectmenu/selectmenu_options.js10
-rw-r--r--tests/visual/selectmenu/methods.html12
-rw-r--r--tests/visual/selectmenu/option.html63
-rw-r--r--ui/jquery.ui.selectmenu.js21
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 );