我正在嘗試創建聯繫表單。該表單看起來像這樣:要求使用Angular 2的兩個字段之一
<form novalidate [formGroup]="contact" (ngSubmit)="send()">
<p>
<label>Name
<br>
<input type="text" class="input" value="" formControlName="name">
<span class="error">Enter your name</span>
</label>
</p>
<p>
<label>E-mail
<br>
<input type="email" class="input" value="" formControlName="email">
<span class="error">It looks like this email is invalid</span>
</label>
</p>
<p>
<label>Phone
<br>
<input type="text" class="input" value="" formControlName="telefone">
<span class="error">It looks like this phone number is invalid</span>
</label>
</p>
<p>
<label>Message
<br>
<textarea type="text" class="input" value="" formControlName="message"></textarea>
<span class="error">The message can't be empty</span>
</label>
</p>
<p class="submit">
<input type="submit" name="submit" class="bt" value="Send">
</p>
</form>
在此表單中只需要郵件和名稱以及電子郵件或電話號碼字段。
我使用的是formBuilder
類,所以這裏的打字稿代碼:
this.contact = this.formBuilder.group({
name: ['', Validators.required],
email: ['', Validators.compose([/*Use custom validador??*/])],
phone: ['', Validators.compose([/*Use custom validador??*/]],
message: ['', Validators.required]
});
我使用自定義的驗證作爲一種解決方案試過,但我無法找出一個解決方案。有什麼建議麼?
爲了顯示自定義錯誤'nameLengthFive',請記住'FormGroup'上調用hasError,而不是'FormControl'。你在答案中寫得很對,很容易忽略。 –