Skip to content

Commit ac9ca9e

Browse files
fnagelscottgonzalez
authored andcommitted
Menu: Support number pad keyboard input
Fixes #15031 Closes gh-1732
1 parent 1148aef commit ac9ca9e

File tree

2 files changed

+35
-16
lines changed

2 files changed

+35
-16
lines changed

tests/unit/selectmenu/core.js

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -341,23 +341,39 @@ $.each( [
341341
} );
342342
} );
343343

344-
QUnit.test( "Selectmenu should reset when its parent form resets", function( assert ) {
345-
var ready = assert.async();
346-
assert.expect( 2 );
344+
QUnit.test( "Selectmenu should reset when its parent form resets", function( assert ) {
345+
var ready = assert.async();
346+
assert.expect( 2 );
347347

348-
var element = $( "#speed" ).selectmenu(),
349-
widget = element.selectmenu( "widget" ),
350-
initialValue = element.val(),
351-
form = element.closest( "form" );
348+
var element = $( "#speed" ).selectmenu(),
349+
widget = element.selectmenu( "widget" ),
350+
initialValue = element.val(),
351+
form = element.closest( "form" );
352352

353-
element.val( "Slower" );
354-
element.selectmenu( "refresh" );
355-
assert.equal( $.trim( widget.text() ), "Slower" );
356-
form[ 0 ].reset();
357-
setTimeout( function() {
358-
assert.equal( $.trim( widget.text() ), initialValue );
359-
ready();
360-
} );
353+
element.val( "Slower" );
354+
element.selectmenu( "refresh" );
355+
assert.equal( $.trim( widget.text() ), "Slower" );
356+
form[ 0 ].reset();
357+
setTimeout( function() {
358+
assert.equal( $.trim( widget.text() ), initialValue );
359+
ready();
361360
} );
361+
} );
362+
363+
QUnit.test( "Number pad input should change value", function( assert ) {
364+
var ready = assert.async();
365+
assert.expect( 1 );
366+
367+
var element = $( "#number" ).selectmenu(),
368+
button = element.selectmenu( "widget" );
369+
370+
button.simulate( "focus" );
371+
button.simulate( "keydown", { keyCode: 101 } );
372+
373+
setTimeout( function() {
374+
assert.equal( element.val(), 5 );
375+
ready();
376+
} );
377+
} );
362378

363379
} );

ui/widgets/menu.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,12 @@ return $.widget( "ui.menu", {
236236
default:
237237
preventDefault = false;
238238
prev = this.previousFilter || "";
239-
character = String.fromCharCode( event.keyCode );
240239
skip = false;
241240

241+
// Support number pad values
242+
character = event.keyCode >= 96 && event.keyCode <= 105 ?
243+
( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode );
244+
242245
clearTimeout( this.filterTimer );
243246

244247
if ( character === prev ) {

0 commit comments

Comments
 (0)