Skip to content

Commit ad7212d

Browse files
committed
succesfully validated first page by including 'submit' button with logic that checks if everything is valid, else it show error message for cards that are invalid
1 parent bbc9f80 commit ad7212d

2 files changed

Lines changed: 21 additions & 15 deletions

File tree

src/pages/wizard/wizard.html

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ <h1 class="h1">Questionnaire 1/3</h1>
100100

101101
<form [formGroup]="firstForm" (ngSubmit)="logForm()" (ionChange)="formChanged()">
102102

103-
<ion-card [class.invalid]="!branchValid && branchTouched" class="card-size">
103+
<ion-card [class.invalid]="!branchValid && (branchTouched || submitIntent)" class="card-size">
104104
<ion-item-group>
105105
<ion-item-divider class='q-group' color="light">
106106
Select your military branch
@@ -109,13 +109,13 @@ <h1 class="h1">Questionnaire 1/3</h1>
109109
<span class='question'>{{branchValue}}</span>
110110
<a class="select" (click)="showRadioBranch()">Select</a>
111111
</ion-item>
112-
<ion-item no-lines *ngIf="!branchValid && branchTouched" >
112+
<ion-item no-lines *ngIf="!branchValid && (branchTouched || submitIntent)" >
113113
<p class="invalid-text">Enter an option</p>
114114
</ion-item>
115115
</ion-item-group>
116116
</ion-card>
117117

118-
<ion-card [class.invalid]="!vetValid && vetTouched">
118+
<ion-card [class.invalid]="!vetValid && (vetTouched || submitIntent)">
119119
<ion-item-group>
120120
<ion-item-divider class='q-group' color="light">
121121
Are you an active member or a veteran?
@@ -124,13 +124,13 @@ <h1 class="h1">Questionnaire 1/3</h1>
124124
<span class='question'>{{vetValue}}</span>
125125
<a class="select" (click)="showVetOptions()">Select</a>
126126
</ion-item>
127-
<ion-item no-lines *ngIf="!vetValid && vetTouched" >
127+
<ion-item no-lines *ngIf="!vetValid && (vetTouched || submitIntent)" >
128128
<p class="invalid-text">Enter an option</p>
129129
</ion-item>
130130
</ion-item-group>
131131
</ion-card>
132132

133-
<ion-card [class.invalid]="!firstForm.controls.vetQuestionName.valid && (firstForm.controls.vetQuestionName.touched)" *ngIf="vetValid">
133+
<ion-card [class.invalid]="!firstForm.controls.vetQuestionName.valid && (firstForm.controls.vetQuestionName.touched ||submitIntent)" *ngIf="vetValid">
134134
<ion-item-group>
135135
<ion-item-divider class='q-group' color="light">
136136
{{SeparationQuestion}}
@@ -146,7 +146,7 @@ <h1 class="h1">Questionnaire 1/3</h1>
146146
</ion-datetime>
147147
<ion-label ><a class="select" >Select</a></ion-label>
148148
</ion-item>
149-
<ion-item class="input" no-lines *ngIf="!firstForm.controls.vetQuestionName.valid && (firstForm.controls.vetQuestionName.touched)">
149+
<ion-item class="input" no-lines *ngIf="!firstForm.controls.vetQuestionName.valid && (firstForm.controls.vetQuestionName.touched || submitIntent)">
150150
<p class="invalid-text">Enter a date</p>
151151
</ion-item>
152152
</ion-item-group>
@@ -161,13 +161,13 @@ <h1 class="h1">Questionnaire 1/3</h1>
161161
<span class='question'>{{disabilityQValue}}</span>
162162
<a class="select" #disabilityValue (click)="showRadioDisability()"> Select </a>
163163
</ion-item>
164-
<ion-item no-lines *ngIf="!disabilityValid && disabilityTouched" >
164+
<ion-item no-lines *ngIf="!disabilityValid && (disabilityTouched || submitIntent)" >
165165
<p class="invalid-text">Enter an option</p>
166166
</ion-item>
167167
</ion-item-group>
168168
</ion-card>
169169

170-
<ion-card [class.invalid]="!firstForm.controls.percentQuestionName.valid && (firstForm.controls.percentQuestionName.dirty)" *ngIf="disabilityQValue == 'Yes'">
170+
<ion-card [class.invalid]="!firstForm.controls.percentQuestionName.valid && (firstForm.controls.percentQuestionName.dirty || submitIntent)" *ngIf="disabilityQValue == 'Yes'">
171171
<ion-item-group>
172172
<ion-item-divider class='q-group' color="light">
173173
What is your assigned disability rating (Percent)?
@@ -181,13 +181,13 @@ <h1 class="h1">Questionnaire 1/3</h1>
181181
>
182182
</ion-input>
183183
</ion-item>
184-
<ion-item class="input" *ngIf="!firstForm.controls.percentQuestionName.valid && (firstForm.controls.percentQuestionName.dirty)">
184+
<ion-item class="input" *ngIf="!firstForm.controls.percentQuestionName.valid && (firstForm.controls.percentQuestionName.dirty || submitIntent)">
185185
<p class="invalid-text" invalid-text>Enter a valid percent number from 1-100 </p>
186186
</ion-item>
187187
</ion-item-group>
188188
</ion-card>
189189

190-
<button ion-button type="submit" (click)="onSubmit()" [disabled]="!firstForm.valid" >submit</button><br>
190+
<button ion-button type="submit" (click)="onSubmitOne()" >submit</button><br>
191191
</form>
192192

193193
</div>

src/pages/wizard/wizard.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,12 +185,18 @@ export class WizardPage implements OnInit {
185185
}
186186

187187
//when navigating to the new slide when user clicks submit
188-
onSubmit() {
189-
this.shouldLockSwipeToNext = false;
190-
this.lockNextSlide()
191-
this.next();
192-
console.log()
188+
submitIntent: boolean = false;
189+
onSubmitOne() {
190+
if(this.branchValid && this.vetValid && this.disabilityValid && this.firstForm.valid) {
191+
this.shouldLockSwipeToNext = false;
192+
this.lockNextSlide()
193+
this.next();
194+
console.log("valid")
195+
} else {
196+
console.log("inavalid")
193197
}
198+
this.submitIntent = true;
199+
}
194200

195201
next() {
196202
this.slides.slideNext(500);

0 commit comments

Comments
 (0)