Skip to content

bug([MatChipInput]): matChipInputAddOnBlur: true + selecting option by click inserts 2 chips #28173

Open
@poveu

Description

@poveu

Description

This is an intentional duplicate of #19279, because it's been closed with a workaround that no longer works with the new Angular Material components (v15+).

The workaround was to set matChipInputAddOnBlur to false and handle the (blur) event on our own while ignoring the one that is related (relatedTarget) to mat-option element, however, now, clicking the mat-option will fire the FocusEvent with relatedTarget: null.

My updated (and working) workaround looks like this:

addOnBlur(event: FocusEvent) {
    const target: HTMLElement = event.relatedTarget as HTMLElement;

    if (!target) {
        return;
    }

    this.addCustomChip(this.itemInput.nativeElement.value); // or manually create MatChipInputEvent etc...
}

However, the original issue is still there and it shouldn't require any workaround in the first place.

Reproduction

https://stackblitz.com/edit/angular-rd38q1-b74xmz?file=src%2Fapp%2Fchips-autocomplete-example.ts,package.json,src%2Fapp%2Fchips-autocomplete-example.html,src%2Fmain.ts
81319947-011e3200-90c3-11ea-8cd3-4556ec9ff622

Expected Behavior

Only the selected option should become a chip

Actual Behavior

The input text also becomes a chip

Environment

  • Angular: v15+
  • CDK/Material: v15+
  • Browser(s): Chrome
  • Operating System (e.g. Windows, macOS, Ubuntu): Windows

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3An issue that is relevant to core functions, but does not impede progress. Important, but not urgentarea: material/autocompletearea: material/chips

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions