This commit is contained in:
selicens 2025-06-19 10:12:58 +02:00 committed by GitHub
commit f8680d0007
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 1 deletions

View File

@ -163,4 +163,16 @@ describe('runtime-dom: v-on directive', () => {
triggerEvent(el2, 'click', e => (e.shiftKey = true))
expect(fn).toBeCalledTimes(2)
})
it('it should support "enter" and "tab" key modifiers', () => {
const el = document.createElement('input')
const fn = vi.fn()
const enterHandler = withModifiers(fn, ['enter', 'tab'])
patchEvent(el, 'onKeyup', null, enterHandler, null)
triggerEvent(el, 'keyup', e => (e.key = 'Enter'))
expect(fn).toBeCalledTimes(1)
triggerEvent(el, 'keyup', e => (e.key = 'Tab'))
expect(fn).toBeCalledTimes(2)
})
})

View File

@ -72,7 +72,15 @@ export const withModifiers = <
// Kept for 2.x compat.
// Note: IE11 compat for `spacebar` and `del` is removed for now.
const keyNames: Record<
'esc' | 'space' | 'up' | 'left' | 'right' | 'down' | 'delete',
| 'esc'
| 'space'
| 'up'
| 'left'
| 'right'
| 'down'
| 'delete'
| 'enter'
| 'tab',
string
> = {
esc: 'escape',
@ -82,6 +90,8 @@ const keyNames: Record<
right: 'arrow-right',
down: 'arrow-down',
delete: 'backspace',
enter: 'enter',
tab: 'tab',
}
/**