voici le code:
list.component.html
<nz-radio-group formControlName="radiostatus" [(ngModel)]="radioValue" (ngModelChange)="onChangeStatus($event)">
<label nz-radio nzValue="passed">Passed</label>
<label nz-radio nzValue="failed">Failed</label>
</nz-radio-group>
<button class="mr-1" nz-button nzType="primary" type="button" [disabled]="disableSubmitBtn()">
<span translate>Submit</span>
</button>
Lorsqu'il sélectionne le réussi il devrait activer le bouton d'envoi s'il sélectionne le échec il devrait désactiver le bouton d'envoi
5 Réponses :
juste un petit changement dans votre code
<nz-radio-group formControlName="radiostatus" [(ngModel)]="radioValue" (ngModelChange)="onChangeStatus($event)">
<label nz-radio nzValue="passed">Passed</label>
<label nz-radio nzValue="failed">Failed</label>
</nz-radio-group>
<button class="mr-1" nz-button nzType="primary" type="button" [disabled]="radioValue == 'failed'">
<span translate>Submit</span>
</button>
comment l'appliquer sur ts?
dans ce cas, vous devez prendre une variable sur votre exemple de fichier ts: isDisabled: boolean; et sur votre html [disabled] = "isDisabled" par défaut, ce sera faux. puis sous la fonction ngModelChange, vous devez vérifier la valeur du bouton radio si radioValue échoue, alors vous pouvez faire isDisabled = true;
Vous pouvez essayer comme ceci
<nz-radio-group formControlName="radiostatus" [(ngModel)]="radioValue" (ngModelChange)="onChangeStatus($event)">
<label nz-radio nzValue="passed">Passed</label>
<label nz-radio nzValue="failed">Failed</label>
</nz-radio-group>
<button class="mr-1" nz-button nzType="primary" type="button" [disabled]="radioValue == 'passed' ? 'false' : 'true'">
<span translate>Submit</span>
</button>
Vous pouvez attribuer une valeur vrai ou faux au bouton radio pour identifier la réussite ou l'échec. Et utilisez cette condition pour activer ou désactiver le bouton.
<nz-radio-group formControlName="radiostatus" [(ngModel)]="radioValue" (ngModelChange)="onChangeStatus($event)">
<label nz-radio nzValue="true">Passed</label>
<label nz-radio nzValue="false">Failed</label>
</nz-radio-group>
<button class="mr-1" nz-button nzType="primary" type="button" [disabled]="nzValue" >
<span translate>Submit</span>
</button>
Vous venez de modifier la ligne suivante
<button class="mr-1" nz-button nzType="primary" type="button" [disabled]="!radioValue ? 'disabled': null">
Le moyen le meilleur et le plus efficace pour y parvenir est d'utiliser des validateurs personnalisés sous des formes angulaires.
passed: ['', [Validators.required, checkIfPassed]], failed: ['', [Validators.required, checkIfPassed]],
Ensuite, utilisez ce validateur dans vos formes angulaires.
import { ValidationErrors, AbstractControl } from '@angular/forms';
export class CustomValidator{
static checkIfPassed (control: AbstractControl): ValidationErrors | null {
if (control.value == 'passed') {
return { shouldbepassed: true }
}
return null;
}
}
vous utilisez également formControlname et ngModel ensemble, ce qui n'est pas le bon moyen. vous devriez en utiliser un.
@Mridul si je supprime le formControlname et ngModel, il y aura une erreur d'ann
Vous devez en garder un en fonction de vos besoins :)
ok merci .. @Mridul