diff --git a/packages/input/__tests__/input.spec.ts b/packages/input/__tests__/input.spec.ts
index 5c7c7c8b35..e520aeb3c7 100644
--- a/packages/input/__tests__/input.spec.ts
+++ b/packages/input/__tests__/input.spec.ts
@@ -445,6 +445,30 @@ describe('Input.vue', () => {
expect(handleKeyup).toBeCalledTimes(1)
})
+ describe('Textarea Events', () => {
+ test('event:keydown', async () => {
+ const handleKeydown = jest.fn()
+ const wrapper = _mount({
+ template: ``,
+ setup() {
+ const val = ref('')
+
+ return {
+ val,
+ handleKeydown,
+ }
+ },
+ })
+
+ await wrapper.find('textarea').trigger('keydown')
+ expect(handleKeydown).toBeCalledTimes(1)
+ })
+ })
+
// TODO: validateEvent & input containes select cases should be added after the rest components finished
// ...
diff --git a/packages/input/src/index.vue b/packages/input/src/index.vue
index e931078082..68d5f6c95a 100644
--- a/packages/input/src/index.vue
+++ b/packages/input/src/index.vue
@@ -98,6 +98,7 @@
@focus="handleFocus"
@blur="handleBlur"
@change="handleChange"
+ @keydown="handleKeydown"
>
{{ textLength }}/{{ upperLimit }}