From 7685ecd254b980f469960bf8bc3ef4278c85371f Mon Sep 17 00:00:00 2001 From: neverland Date: Sat, 27 Oct 2018 20:04:25 +0800 Subject: [PATCH] [improvement] Field: add focus method (#1987) --- packages/field/en-US.md | 1 + packages/field/index.vue | 4 ++++ packages/field/test/index.spec.js | 10 ++++++++++ packages/field/zh-CN.md | 1 + 4 files changed, 16 insertions(+) diff --git a/packages/field/en-US.md b/packages/field/en-US.md index 8feb8865d..39f01095c 100644 --- a/packages/field/en-US.md +++ b/packages/field/en-US.md @@ -147,6 +147,7 @@ Use ref to get field instance and call instance methods | Name | Attribute | Return value | Description | |------|------|------|------| +| focus | - | - | Trigger input focus | | blur | - | - | Trigger input blur | ### Slot diff --git a/packages/field/index.vue b/packages/field/index.vue index 5f38061b1..2c4032a6a 100644 --- a/packages/field/index.vue +++ b/packages/field/index.vue @@ -127,6 +127,10 @@ export default create({ }, methods: { + focus() { + this.$refs.input && this.$refs.input.focus(); + }, + blur() { this.$refs.input && this.$refs.input.blur(); }, diff --git a/packages/field/test/index.spec.js b/packages/field/test/index.spec.js index 9482e91e3..5d219c65a 100644 --- a/packages/field/test/index.spec.js +++ b/packages/field/test/index.spec.js @@ -110,6 +110,16 @@ test('blur method', () => { expect(fn.mock.calls.length).toEqual(1); }); +test('focus method', () => { + const fn = jest.fn(); + const wrapper = mount(Field); + + wrapper.vm.$on('focus', fn); + wrapper.vm.focus(); + + expect(fn.mock.calls.length).toEqual(1); +}); + test('maxlength', async() => { const wrapper = mount(Field, { attrs: { diff --git a/packages/field/zh-CN.md b/packages/field/zh-CN.md index 59fb17850..eaff064fb 100644 --- a/packages/field/zh-CN.md +++ b/packages/field/zh-CN.md @@ -149,6 +149,7 @@ Field 默认支持 Input 标签所有的原生事件,如 `focus`、`blur`、`k | 方法名 | 参数 | 返回值 | 介绍 | |------|------|------|------| +| focus | - | - | 获取输入框焦点 | | blur | - | - | 取消输入框焦点 | ### Slot