From 0adfe59ddca87dead34391702d82a14ec5751a9f Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 12 May 2020 15:47:28 +0800 Subject: [PATCH] fix(Field): textarea line break failed on enter (#6263) --- src/field/index.js | 5 ++++- src/field/test/index.spec.js | 12 ++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/field/index.js b/src/field/index.js index 404efd09b..6b33b71ac 100644 --- a/src/field/index.js +++ b/src/field/index.js @@ -356,7 +356,10 @@ export default createComponent({ const ENTER_CODE = 13; if (event.keyCode === ENTER_CODE) { - preventDefault(event); + // should not submit form on etner + if (this.type !== 'textarea') { + preventDefault(event); + } // trigger blur after click keyboard search button if (this.type === 'search') { diff --git a/src/field/test/index.spec.js b/src/field/test/index.spec.js index 6c157181a..f1758019c 100644 --- a/src/field/test/index.spec.js +++ b/src/field/test/index.spec.js @@ -345,14 +345,18 @@ test('colon prop', () => { test('should blur search input on enter', () => { const wrapper = mount(Field); - const input = wrapper.find('input'); - input.element.focus(); + wrapper.find('input').element.focus(); + wrapper.find('input').trigger('keypress.enter'); + expect(wrapper.emitted('blur')).toBeFalsy(); - input.trigger('keypress.enter'); + wrapper.setProps({ type: 'textarea' }); + wrapper.find('textarea').element.focus(); + wrapper.find('textarea').trigger('keypress.enter'); expect(wrapper.emitted('blur')).toBeFalsy(); wrapper.setProps({ type: 'search' }); - input.trigger('keypress.enter'); + wrapper.find('input').element.focus(); + wrapper.find('input').trigger('keypress.enter'); expect(wrapper.emitted('blur')).toBeTruthy(); });