FiringBlanks
FiringBlanks

Reputation: 2084

mat-select Not Working Properly

The mat-select element is acting funny. See below.

Code

<mat-form-field>
    <input matInput placeholder="Name" #NameInput>
</mat-form-field>

<mat-select placeholder="How Many?">
    <mat-option>One</mat-option>
    <mat-option>Two</mat-option>
    <mat-option>Three</mat-option>
    <mat-option>Four</mat-option>
    <mat-option>Five</mat-option>
</mat-select>

Results

mat-select element acting weird

Wrapping the mat-select in a mat-form-field gives me the following error:

mat-form-field must contain a MatFormFieldControl. Did you forget to add matInput to the native input or textarea element?

However, including an input with matInput shows both the input and the mat-select together, making it look weird. Any way around this?

Upvotes: 7

Views: 31177

Answers (3)

nsk
nsk

Reputation: 1463

I mistakenly put placeHolder [in camelCase] instead of placeholder and it just ignored this!!!

It was very hard to find! but once I changed to placeholder I was able to see it. Just wanted to share in case you may also have run into..

Upvotes: 2

FiringBlanks
FiringBlanks

Reputation: 2084

Silly me, I forgot to import MatSelectModule in my app.module.ts.

Upvotes: 8

StephaneM
StephaneM

Reputation: 4899

The message says that your select must be in a mat-form-field, not in the same mat-form-field as your input. Try this:

<mat-form-field>
    <input matInput placeholder="Name" #NameInput>
</mat-form-field>

<mat-form-field>
    <mat-select placeholder="How Many?">
        <mat-option>One</mat-option>
        <mat-option>Two</mat-option>
        <mat-option>Three</mat-option>
        <mat-option>Four</mat-option>
        <mat-option>Five</mat-option>
    </mat-select>
</mat-form-field>

In the doc that's how they do: https://material.angular.io/components/form-field/overview

Upvotes: 10

Related Questions