Topic: combine input validations
Hi,
we would like to combine different input validations on one textfield like:
minValue, maxValue, minLength and maxLength.
We thought that the following Code would work but now we get an errror. How can we combine different validation
<form [formGroup]="validatingForm"> <div class="md-form"> <input type="text" id="form2" class="form-control" data-error="wrong text" data-success="right text" formControlName="customvalidator"> <label mdbInputDirective [mdbValidate]="false" for="form2">validator</label> <div *ngIf="validatingForm.controls['customvalidator'].touched"> <div class="alert alert-danger" *ngIf="validatingForm.controls['customvalidator'].errors?.minlength">to Short Error</div> <div class="alert alert-danger" *ngIf="validatingForm.controls['customvalidator'].errors?.maxlenght">to long Error</div> <div class="alert alert-danger" *ngIf="validatingForm.controls['customvalidator'].errors?.min">Min Value Error</div> <div class="alert alert-danger" *ngIf="validatingForm.controls['customvalidator'].errors?.max">Max Value Error</div> </div> </div> </form>
this.validatingForm = fb.group({ 'customvalidator': [null, Validators.minLength(4), Validators.maxLength(4), Validators.min(1900), Validators.max(2100) ], });
Thanks
best regards
Robert
msgCH pro answered 7 years ago
I found the problem. I had no square bracket around the Validators and after the first null parameter.
this.validatingForm = fb.group({ 'customvalidator': [null ,[ Validators.minLength(4), Validators.maxLength(4), Validators.min(1900), Validators.max(2100)]], });
Is it correct that the minLenght and the maxLenth doesn't work when i use
<input type="number".....
So i would use the normal Textinput with a keyup event that allows only numbers and no letters. Is that correct.
Damian Gemza staff commented 7 years ago
Dear msgCH, You have to read more about validators and types of inputs on the Internet. Do you need more help with our product? Best Regards, Damianxzesstence pro commented 6 years ago
So it seems that Form Validation in MDBootstrap Examples is wrong!
https://mdbootstrap.com/docs/angular/forms/validation/
See .TS in first example
Really annoying that as a pro user you have the same problems like in bad written free components.
Unsatisfying.. Far too expensive for what you get here
When i buy something i expect it to work properly!
Even when you add brackets it does not work @ Angular MDBootstrap
msgCH pro answered 7 years ago
core.js:1601 ERROR Error: Uncaught (in promise): Error: Expected validator to return Promise or Observable. Error: Expected validator to return Promise or Observable. at toObservable (forms.js:637) at FormControl.push../node_modules/@angular/forms/fesm5/forms.js.AbstractControl._runAsyncValidator (forms.js:2635) at FormControl.push../node_modules/@angular/forms/fesm5/forms.js.AbstractControl.updateValueAndValidity (forms.js:2606) at new FormControl (forms.js:2982) at FormBuilder.push../node_modules/@angular/forms/fesm5/forms.js.FormBuilder.control (forms.js:6036) at FormBuilder.push../node_modules/@angular/forms/fesm5/forms.js.FormBuilder._createControl (forms.js:6078) at forms.js:6062 at Array.forEach (<anonymous>) at FormBuilder.push../node_modules/@angular/forms/fesm5/forms.js.FormBuilder._reduceControls (forms.js:6061) at FormBuilder.push../node_modules/@angular/forms/fesm5/forms.js.FormBuilder.group (forms.js:6006) at toObservable (forms.js:637) at FormControl.push../node_modules/@angular/forms/fesm5/forms.js.AbstractControl._runAsyncValidator (forms.js:2635) at FormControl.push../node_modules/@angular/forms/fesm5/forms.js.AbstractControl.updateValueAndValidity (forms.js:2606) at new FormControl (forms.js:2982) at FormBuilder.push../node_modules/@angular/forms/fesm5/forms.js.FormBuilder.control (forms.js:6036) at FormBuilder.push../node_modules/@angular/forms/fesm5/forms.js.FormBuilder._createControl (forms.js:6078) at forms.js:6062 at Array.forEach (<anonymous>) at FormBuilder.push../node_modules/@angular/forms/fesm5/forms.js.FormBuilder._reduceControls (forms.js:6061) at FormBuilder.push../node_modules/@angular/forms/fesm5/forms.js.FormBuilder.group (forms.js:6006) at resolvePromise (zone.js:814) at resolvePromise (zone.js:771) at zone.js:873 at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) at Object.onInvokeTask (core.js:4062) at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) at drainMicroTaskQueue (zone.js:595) at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (zone.js:500) at ZoneTask.invoke (zone.js:485) defaultErrorLogger @ core.js:1601 push../node_modules/@angular/core/fesm5/core.js.ErrorHandler.handleError @ core.js:1650 next @ core.js:4736 schedulerFn @ core.js:3721 push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.__tryOrUnsub @ Subscriber.js:253 push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.next @ Subscriber.js:191 push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._next @ Subscriber.js:129 push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next @ Subscriber.js:93 push../node_modules/rxjs/_esm5/internal/Subject.js.Subject.next @ Subject.js:53 push../node_modules/@angular/core/fesm5/core.js.EventEmitter.emit @ core.js:3713 (anonymous) @ core.js:4093 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:388 push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:138 push../node_modules/@angular/core/fesm5/core.js.NgZone.runOutsideAngular @ core.js:4030 onHandleError @ core.js:4093 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.handleError @ zone.js:392 push../node_modules/zone.js/dist/zone.js.Zone.runGuarded @ zone.js:154 _loop_1 @ zone.js:677 api.microtaskDrainDone @ zone.js:686 drainMicroTaskQueue @ zone.js:602 push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:500 ZoneTask.invoke @ zone.js:485 timer @ zone.js:2054 setTimeout (async) scheduleTask @ zone.js:2075 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:407 onScheduleTask @ zone.js:297 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:401 push../node_modules/zone.js/dist/zone.js.Zone.scheduleTask @ zone.js:232 push../node_modules/zone.js/dist/zone.js.Zone.scheduleMacroTask @ zone.js:255 scheduleMacroTaskWithCurrentZone @ zone.js:1114 (anonymous) @ zone.js:2090 proto.(anonymous function) @ zone.js:1394 (anonymous) @ router.js:3488 schedulerFn @ core.js:3721 push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.__tryOrUnsub @ Subscriber.js:253 push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.next @ Subscriber.js:191 push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._next @ Subscriber.js:129 push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next @ Subscriber.js:93 push../node_modules/rxjs/_esm5/internal/Subject.js.Subject.next @ Subject.js:53 push../node_modules/@angular/core/fesm5/core.js.EventEmitter.emit @ core.js:3713 (anonymous) @ common.js:143 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:421 onInvokeTask @ core.js:4062 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:420 push../node_modules/zone.js/dist/zone.js.Zone.runTask @ zone.js:188 push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:496 invokeTask @ zone.js:1540 globalZoneAwareCallback @ zone.js:1566Thanks Best regards Robert
FREE CONSULTATION
Hire our experts to build a dedicated project. We'll analyze your business requirements, for free.
Resolved
- User: Pro
- Premium support: No
- Technology: MDB Angular
- MDB Version: -
- Device: -
- Browser: -
- OS: -
- Provided sample code: No
- Provided link: No
Damian Gemza staff commented 7 years ago
Dear Robert, What's wrong exactly? Which errors you're facing up? Please paste me here some error log, or describe me actual behavior. Best Regards, Damian