From 0ba82684197a90367874c4818c3acdd6786e1227 Mon Sep 17 00:00:00 2001 From: Stefan Dimitrov Date: Tue, 21 Oct 2025 14:39:54 +0300 Subject: [PATCH] fix(ui5-multi-input): fire change event on enter --- packages/main/cypress/specs/MultiInput.cy.tsx | 24 ++++++++++++++++--- packages/main/src/MultiInput.ts | 2 +- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/main/cypress/specs/MultiInput.cy.tsx b/packages/main/cypress/specs/MultiInput.cy.tsx index 449d14127268..280cad229959 100644 --- a/packages/main/cypress/specs/MultiInput.cy.tsx +++ b/packages/main/cypress/specs/MultiInput.cy.tsx @@ -1335,6 +1335,24 @@ describe("Keyboard handling", () => { cy.get("[ui5-multi-input]") .should("have.attr", "value-state", "None"); }); + + it("should trigger change event on enter with no suggestions", () => { + const changeSpy = cy.stub().as("changeSpy"); + cy.mount( + + ); + + cy.get("[ui5-multi-input]") + .shadow() + .find("input") + .realClick(); + + cy.realType("asd"); + cy.realPress("Enter"); + + cy.get("@changeSpy") + .should("have.been.calledOnce"); + }); }); describe("MultiInput Composition", () => { @@ -1371,7 +1389,7 @@ describe("MultiInput Composition", () => { cy.get("@multiinput").should("have.prop", "_isComposing", true); cy.get("@nativeInput").trigger("compositionend", { data: "사랑" }); - + cy.get("@nativeInput") .invoke("val", "사랑") .trigger("input", { inputType: "insertCompositionText" }); @@ -1425,7 +1443,7 @@ describe("MultiInput Composition", () => { cy.get("@multiinput").should("have.prop", "_isComposing", true); cy.get("@nativeInput").trigger("compositionend", { data: "ありがとう" }); - + cy.get("@nativeInput") .invoke("val", "ありがとう") .trigger("input", { inputType: "insertCompositionText" }); @@ -1479,7 +1497,7 @@ describe("MultiInput Composition", () => { cy.get("@multiinput").should("have.prop", "_isComposing", true); cy.get("@nativeInput").trigger("compositionend", { data: "谢谢" }); - + cy.get("@nativeInput") .invoke("val", "谢谢") .trigger("input", { inputType: "insertCompositionText" }); diff --git a/packages/main/src/MultiInput.ts b/packages/main/src/MultiInput.ts index 733b198214bc..ee18c7abf636 100644 --- a/packages/main/src/MultiInput.ts +++ b/packages/main/src/MultiInput.ts @@ -233,7 +233,7 @@ class MultiInput extends Input implements IFormInputElement { return this._focusFirstToken(e); } - if (isEnter(e)) { + if (isEnter(e) && !!this._internals.form) { e.preventDefault(); }