如果輸入為空回車鍵不應呼叫函式“generateCityDetailArray()”意味著它應該被禁用,否則它應該呼叫函式“generateCityDetailArray()”。如何實作這一目標?
<div class="form-group">
<input type = "text" class="col2" formControlName="pinCode"
[(ngModel)]="pinCode" required (keyup.enter)="generatecityDetailArray()" maxlength="6" />
<div *ngIf="f.pinCode.invalid && f.pinCode.touched"><strong class="text-danger" *ngIf="f.pinCode.errors?.required">Please enter the value!</strong></div>
</div>
現在,如果我在文本框中單擊輸入,"generateCityDetailArray()"即使輸入為空,它也會呼叫。所需要的是,如果輸入為空并且如果單擊輸入,則它應該給出類似“請輸入密碼”的訊息,當輸入為空時不應呼叫“generateCityDetailArray()”。
uj5u.com熱心網友回復:
為什么不直接啟動方法generatecityDetailArray()通過
if (!this.pinCode) {
return;
}
uj5u.com熱心網友回復:
如果您對輸入有表單控制,則只有在輸入沒有錯誤時才能啟動方法
(keyup.enter)="pinCode.errors ? '' : generatecityDetailArray()"
如果您想顯示訊息說您必須輸入密碼,您可以使用以下語法
<div *ngIf="pinCode.errors?.['required']">
Please Enter pincode.
</div>
在您的課程中,您必須定義表單控制元件的 getter 和 setter
get pinCode() { return this.cityDetailForm.get('pinCode'); }
這里是關于驗證器的檔案 https://angular.io/guide/form-validation
uj5u.com熱心網友回復:
generatecityDetailArray()如果您有一個值,pinCode則通過檢查啟動該方法的建議是一個不錯的選擇。
如果要在模板中執行檢查,還可以執行以下操作:
(keyup.enter)="cityDetailForm.get('pinCode').invalid ? $event.preventDefault() : generatecityDetailArray()"
如果您只有一個驗證器設定用于 pinCode formControl。如果您有多個進行檢查cityDetailForm.get('pinCode').errors?['required']。
這也是假設那cityDetailForm是你的formGroup。我以前認為這很簡單f,因為ngIf檢查了您的div.
對于這種情況,最好在組件中有一個 getter,所以它會是這樣的:
get isCityDetailInValid(): boolean {
return this.cityDetailForm.get('pinCode').errors?['required'];
// or this.cityDetailForm.get('pinCode').invalid;
}
那么你的模板就是:
(keyup.enter)="isCityDetailInValid ? $event.preventDefault() : generatecityDetailArray()"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392337.html
