From 09fdde8c56903030692544c12a97b299701d8de1 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Fri, 8 May 2020 21:03:18 +0800 Subject: [PATCH] fix(Field): should not submit form on enter (#6240) --- src/field/index.js | 13 +++++++++---- src/field/test/index.spec.js | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/field/index.js b/src/field/index.js index fff3e72ba..404efd09b 100644 --- a/src/field/index.js +++ b/src/field/index.js @@ -353,10 +353,15 @@ export default createComponent({ }, onKeypress(event) { - // trigger blur after click keyboard search button - /* istanbul ignore next */ - if (this.type === 'search' && event.keyCode === 13) { - this.blur(); + const ENTER_CODE = 13; + + if (event.keyCode === ENTER_CODE) { + preventDefault(event); + + // trigger blur after click keyboard search button + if (this.type === 'search') { + this.blur(); + } } this.$emit('keypress', event); diff --git a/src/field/test/index.spec.js b/src/field/test/index.spec.js index 4a3280fd4..6c157181a 100644 --- a/src/field/test/index.spec.js +++ b/src/field/test/index.spec.js @@ -342,3 +342,17 @@ test('colon prop', () => { }); expect(wrapper).toMatchSnapshot(); }); + +test('should blur search input on enter', () => { + const wrapper = mount(Field); + const input = wrapper.find('input'); + + input.element.focus(); + + input.trigger('keypress.enter'); + expect(wrapper.emitted('blur')).toBeFalsy(); + + wrapper.setProps({ type: 'search' }); + input.trigger('keypress.enter'); + expect(wrapper.emitted('blur')).toBeTruthy(); +});