javascript - Validering för väljfält Angular 2


Jag använder [email -versionen. Hur skulle jag göra en validering på ett valt fält?

<div class="form-group" [class.has-error] = "schoolError">
            <label class="control-label" for="lang">Select School</label>
            <select class="form-control" name="school"  
            required #school
            [(ngModel)] = "model.school">
                <option value="default">Select a school</option>
                <option *ngFor= "let sch of school">{{sch}}</option>
            </select>
        </div>   

 <button class="btn btn-primary" 
     [disabled] = "form.invalid" type="submit">Submit</button>

I princip vill jag inaktivera knappen när väljfältet är ogiltigt? Hur gör jag så att väljfältet blir ogiltigt när inget värde är valt?

Svar #1

Du kan skapa en boolesk variabel och tilldela den false som standardvärde. När användaren väljer ett alternativ kommer den att bli sann.

https://plnkr.co/edit/yR5xz4h3llkxHsUQxFJB?p=preview

<div>
  <select [(ngModel)]='selected'>
    <option value='one'>Three</option>
    <option value='two'>Two</option>
  </select>
  <button [disabled]='!selected && form.status == 'VALID'>click</button>
</div>
selected:boolean = false;

Svar #2

Försök ändra värdet i ditt standardalternativ till en tom sträng:

<option [value]="">Select a school</option>