File tree Expand file tree Collapse file tree 3 files changed +34
-5
lines changed Expand file tree Collapse file tree 3 files changed +34
-5
lines changed Original file line number Diff line number Diff line change @@ -53,10 +53,10 @@ function genHandler (
5353}
5454
5555function genKeyFilter ( key : string ) : string {
56- const code = keyCodes [ key ]
56+ const code = keyCodes [ key ] || JSON . stringify ( key )
5757 if ( Array . isArray ( code ) ) {
58- return `if(${ code . map ( c => `$event.keyCode!== ${ c } ` ) . join ( '&&' ) } )return;`
58+ return `if(${ code . map ( c => `$event.keyCode!=${ c } ` ) . join ( '&&' ) } )return;`
5959 } else {
60- return `if($event.keyCode!== ${ code } )return;`
60+ return `if($event.keyCode!=${ code } )return;`
6161 }
6262}
Original file line number Diff line number Diff line change @@ -102,6 +102,30 @@ describe('Directive v-on', () => {
102102 expect ( callOrder . toString ( ) ) . toBe ( '1,2' )
103103 } )
104104
105+ it ( 'should support keyCode' , ( ) => {
106+ vm = new Vue ( {
107+ el,
108+ template : `<input @keyup.enter="foo">` ,
109+ methods : { foo : spy }
110+ } )
111+ triggerEvent ( vm . $el , 'keyup' , e => {
112+ e . keyCode = 13
113+ } )
114+ expect ( spy ) . toHaveBeenCalled ( )
115+ } )
116+
117+ it ( 'should support number keyCode' , ( ) => {
118+ vm = new Vue ( {
119+ el,
120+ template : `<input @keyup.13="foo">` ,
121+ methods : { foo : spy }
122+ } )
123+ triggerEvent ( vm . $el , 'keyup' , e => {
124+ e . keyCode = 13
125+ } )
126+ expect ( spy ) . toHaveBeenCalled ( )
127+ } )
128+
105129 it ( 'should bind to a child component' , ( ) => {
106130 Vue . component ( 'bar' , {
107131 template : '<span>Hello</span>'
Original file line number Diff line number Diff line change @@ -216,12 +216,17 @@ describe('codegen', () => {
216216 it ( 'generate events with keycode' , ( ) => {
217217 assertCodegen (
218218 '<input @input.enter="onInput">' ,
219- `with(this){return _h(_e('input',{on:{"input":function($event){if($event.keyCode!== 13)return;onInput($event)}}}))}`
219+ `with(this){return _h(_e('input',{on:{"input":function($event){if($event.keyCode!=13)return;onInput($event)}}}))}`
220220 )
221221 // multiple keycodes (delete)
222222 assertCodegen (
223223 '<input @input.delete="onInput">' ,
224- `with(this){return _h(_e('input',{on:{"input":function($event){if($event.keyCode!==8&&$event.keyCode!==46)return;onInput($event)}}}))}`
224+ `with(this){return _h(_e('input',{on:{"input":function($event){if($event.keyCode!=8&&$event.keyCode!=46)return;onInput($event)}}}))}`
225+ )
226+ // number keycode
227+ assertCodegen (
228+ '<input @input.13="onInput">' ,
229+ `with(this){return _h(_e('input',{on:{"input":function($event){if($event.keyCode!="13")return;onInput($event)}}}))}`
225230 )
226231 } )
227232
You can’t perform that action at this time.
0 commit comments