Tôi có trình xác thực tùy chỉnh kiểm tra xem trường nhập có số được nhập vào nó hay không. Xác thực tùy chỉnh 2 góc cho số và giá trị thập phân
Mã này trông giống như vậy:
import { AbstractControl, ValidatorFn } from '@angular/forms';
export class NumberValidators {
static isNumberCheck(): ValidatorFn {
return (c: AbstractControl): {[key: string]: boolean} | null => {
if (c.value !== undefined && (isNaN(c.value))) {
return { 'value': true };
}
return null;
};
}
}
Nhưng vấn đề tôi có là khi tôi nhập một giá trị thập phân nó được nâng cao lá cờ xác nhận mà tôi không muốn. Tôi muốn trường đầu vào có số nguyên và số thập phân. Ai đó có thể vui lòng giúp tôi hiểu đúng không.
Dưới đây là mẫu mã của tôi sử dụng parsleyjs để xác nhận
<div class="form-group row">
<label for="upperbeltposition" class="col-md-6 col-form-label">Upper Belt Position (mm) <span class="required">*</span></label>
<div class="col-md-5">
<input class="form-control input-transparent " id="upperbeltposition" type="text" formControlName="upperbeltposition" data-parsley-trigger="blur"
required="required" data-parsley-type="number"/>
</div>
</div>
<div class="form-group row">
<label for="platformxposition" class="col-md-6 col-form-label">Platform X Position (mm) <span class="required">*</span></label>
<div class="col-md-5">
<input class="form-control input-transparent " id="platformxposition" type="text" formControlName="platformxposition" data-parsley-trigger="blur"
required="required" data-parsley-type="number"/>
</div>
</div>
<div class="form-group row">
<label for="platformyposition" class="col-md-6 col-form-label">Platform Y Position (mm) <span class="required">*</span></label>
<div class="col-md-5">
<input class="form-control input-transparent " id="platformyposition" type="text" formControlName="platformyposition" data-parsley-trigger="blur"
required="required" data-parsley-type="number"/>
</div>
</div>
và trong phần của tôi, tôi đang sử dụng hình thức phản ứng và dưới đây là mã của tôi
upperbeltposition: ['', [Validators.required, NumberValidators.isNumberCheck]],
platformxposition: ['', [Validators.required, NumberValidators.isNumberCheck]],
platformyposition: ['', [Validators.required, NumberValidators.isNumberCheck]]
cảm ơn !!
Có một ghi chú mở rộng về cách sử dụng NaN tại đây: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN Có gì đó có thể có ích. Và theo tham chiếu này, isNaN phải trả về false cho các giá trị thập phân. – DeborahK
Vì vậy, tôi cần phải loại bỏ đó làNaN để cho phép số nguyên và số thập phân – ZAJ