bonjour,
j'ai un formulaire auquel j'ajoute un champ hidden, j'aimerais que lorsque je clique sur une case, la valeur de ce champs hiddent soir remplit à la volé.
voici mon champs avec un formulaire de template:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <input type="hidden" name="jeton" [(ngModel)]="jeton" value="pas de jeton"> <input [(ngModel)]="caseOui" (change)="cocher(1)" type="checkbox" name="non">
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 export class ContactFormComponent implements OnInit { jeton: any = "pas de jeton"; //vérifier si les réponses sont correctent if ( this.caseNon ) { this.jeton="XYZ.... " }
Ce formulaire fonctionne bien, dès que je clique sur la case caseOui, le champs champs hiddent se charge bien à la volé.
Je souhaite maintenant utiliser un formulaire réactive d'angular, voici le script:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <h1>Formulaire de contact</h1> <form id="contactForm" *ngIf="!endForm" [formGroup]="contactForm" (ngSubmit)="envoyer()"> <input type="hidden" formControlName="jeton" > <div class="texte"> <mat-form-field> <input matInput formControlName="nom" placeholder="votre nom"> </mat-form-field> <mat-form-field> <input matInput formControlName="prenom" placeholder="votre prénom"> </mat-form-field> <mat-form-field> <input matInput formControlName="email" placeholder="votre email"> </mat-form-field> </div> <div class="message"> <mat-form-field> <textarea matInput formControlName="message" placeholder="Votre message"> </textarea> </mat-form-field> <mat-checkbox [(ngModel)]="checked" value="cheked" >Checked</mat-checkbox> {{checked |json}} <button mat-raised-button>Envoyer</button> <span *ngIf="erreurForm" class="erreur"> {{erreurForm}} </span> </div> </form> <div *ngIf="endForm"> <h2>Votre demande à été pris en compte</h2> </div>
j'ai cette erreur, je ne peux plus binder l'attribut "checked" avec ngModel
Il me dit de vérifier le checked par le fromGroup, si j'utilise cela, je ne pourrais plus avoir la capacité de savoir à la volé le valeur de la case coché ?NewcontactComponent.html:23 ERROR Error:
ngModel cannot be used to register form controls with a parent formGroup directive. Try using
formGroup's partner directive "formControlName" instead. Example:
sinon je serai obligé d'ajouter un événement sur la case à coché ?
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <mat-checkbox formControlName="checked" (click)="changeValeurChekedDuComponent()" >Checked</mat-checkbox>
Est t'il possible d'avoir le même comportement sans devoir à chaque fois recharger les attribut du composant dans les cases qu'on a coché, car j'en ai mis plusieurs,
il faut la bonne combinaison pour pourvoir obtenir ce jeton dans ce champs hidden
j'aurai pu définir la combinaison lors de la génération de form group:
mais pour l'instant je pense que pour valider les checked on est obligé de clique sur le bouton envoyer, j'aimerais que lorsque l'utilisateur trouve la bonne réponse des cases à coché,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 this.contactForm = this._fb.group({ jeton: ['pas de jeton', Validators.minLength(this.nbChaineJeton)], nom: ['', Validators.required], prenom: ['', Validators.required], email: ['', [Validators.required, Validators.email]], message: ['', Validators.required], checked:['false, Validators(true)], checked2['false, Validators(false)], checked3[false,, Validators(false], checked4:['false, Validators(true)], });
un message apparaît à la volé, comme ça l'utilisateur sais qu'il peut en sécurité cliquer sur envoyé .
merci de vos idées![]()
Partager