Skip to content

Commit 39853fd

Browse files
committed
Selectmenu: Handle form resets
Fixes #12236 Ref gh-1550
1 parent 4e13860 commit 39853fd

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

tests/unit/selectmenu/core.js

+18
Original file line numberDiff line numberDiff line change
@@ -329,4 +329,22 @@ $.each( [
329329
} );
330330
} );
331331

332+
asyncTest( "Selectmenu should reset when its parent form resets", function() {
333+
expect( 2 );
334+
335+
var element = $( "#speed" ).selectmenu(),
336+
widget = element.selectmenu( "widget" ),
337+
initialValue = element.val(),
338+
form = element.closest( "form" );
339+
340+
element.val( "Slower" );
341+
element.selectmenu( "refresh" );
342+
equal( $.trim( widget.text() ), "Slower" );
343+
form[ 0 ].reset();
344+
setTimeout( function() {
345+
equal( $.trim( widget.text() ), initialValue );
346+
start();
347+
} );
348+
} );
349+
332350
} );

tests/unit/selectmenu/selectmenu.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<div id="qunit-fixture">
1414
<div id="selectmenu-wrap1" class="selectmenu-wrap"></div>
1515

16-
<div id="selectmenu-wrap2" class="selectmenu-wrap">
16+
<form id="selectmenu-wrap2" class="selectmenu-wrap">
1717
<label for="speed">Select a speed:</label>
1818
<select name="speed" id="speed">
1919
<option value="Slower">Slower</option>
@@ -22,7 +22,7 @@
2222
<option value="Fast">Fast</option>
2323
<option value="Faster">Faster</option>
2424
</select>
25-
</div>
25+
</form>
2626

2727
<label for="number">Select a number:</label>
2828
<select name="number" id="number">

ui/widgets/selectmenu.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"jquery",
2525
"./menu",
2626
"../escape-selector",
27+
"../form-reset-mixin",
2728
"../keycode",
2829
"../labels",
2930
"../position",
@@ -38,7 +39,7 @@
3839
}
3940
}( function( $ ) {
4041

41-
return $.widget( "ui.selectmenu", {
42+
return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
4243
version: "@VERSION",
4344
defaultElement: "<select>",
4445
options: {
@@ -76,6 +77,7 @@ return $.widget( "ui.selectmenu", {
7677

7778
this._drawButton();
7879
this._drawMenu();
80+
this._bindFormResetHandler();
7981

8082
this._rendered = false;
8183
this.menuItems = $();
@@ -675,12 +677,13 @@ return $.widget( "ui.selectmenu", {
675677
},
676678

677679
_destroy: function() {
680+
this._unbindFormResetHandler();
678681
this.menuWrap.remove();
679682
this.button.remove();
680683
this.element.show();
681684
this.element.removeUniqueId();
682685
this.labels.attr( "for", this.ids.element );
683686
}
684-
} );
687+
} ] );
685688

686689
} ) );

0 commit comments

Comments
 (0)