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 (
53
53
}
54
54
55
55
function genKeyFilter ( key : string ) : string {
56
- const code = keyCodes [ key ]
56
+ const code = keyCodes [ key ] || JSON . stringify ( key )
57
57
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;`
59
59
} else {
60
- return `if($event.keyCode!== ${ code } )return;`
60
+ return `if($event.keyCode!=${ code } )return;`
61
61
}
62
62
}
Original file line number Diff line number Diff line change @@ -102,6 +102,30 @@ describe('Directive v-on', () => {
102
102
expect ( callOrder . toString ( ) ) . toBe ( '1,2' )
103
103
} )
104
104
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
+
105
129
it ( 'should bind to a child component' , ( ) => {
106
130
Vue . component ( 'bar' , {
107
131
template : '<span>Hello</span>'
Original file line number Diff line number Diff line change @@ -216,12 +216,17 @@ describe('codegen', () => {
216
216
it ( 'generate events with keycode' , ( ) => {
217
217
assertCodegen (
218
218
'<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)}}}))}`
220
220
)
221
221
// multiple keycodes (delete)
222
222
assertCodegen (
223
223
'<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)}}}))}`
225
230
)
226
231
} )
227
232
You can’t perform that action at this time.
0 commit comments