Getting selected radio button value, on (ionChange) in radio-group , ionic2
You can use ionSelect event of <ion-radio>
to pass the value.
...
<ion-item>
<ion-label>{{question.optionA}}</ion-label>
<ion-radio value="1" (ionSelect)="mcqAnswer(i,1)"></ion-radio>
</ion-item>
<ion-item>
<ion-label>{{question.optionB}}</ion-label>
<ion-radio value="2" (ionSelect)="mcqAnswer(i,2)"></ion-radio>
</ion-item>
...
In your typescript (.ts) file it will be something like
mcqAnswer(questionID,answer){
...
}
You can pass through $event to your onChange method. E.g.
In your html:
<ion-list radio-group *ngFor="let question of mcqData; let i= index;" (ionChange)="mcqAnswer($event)">
<ion-list-header>
{{question.questionText}}
</ion-list-header>
<ion-item>
<ion-label>{{question.optionA}}</ion-label>
<ion-radio value="1"></ion-radio>
</ion-item>
<ion-item>
<ion-label>{{question.optionB}}</ion-label>
<ion-radio value="2"></ion-radio>
</ion-item>
<ion-item>
<ion-label>{{question.optionC}}</ion-label>
<ion-radio value="3"></ion-radio>
</ion-item>
<ion-item>
<ion-label>{{question.optionD}}</ion-label>
<ion-radio value="4"></ion-radio>
</ion-item>
</ion-list>
In your Typescript:
function mcqAnswer(value)
{
console.log(value);
}
ionic v6: use ngmodel
<ion-radio-group [(ngModel)]="McAns" *ngFor="let question of mcqData; let i= index;" (ionChange)="mcqAnswer($event)">
<ion-list-header>
{{question.questionText}}
</ion-list-header>
<ion-item>
<ion-label>{{question.optionA}}</ion-label>
<ion-radio value="1"></ion-radio>
</ion-item>
<ion-item>
<ion-label>{{question.optionB}}</ion-label>
<ion-radio value="2"></ion-radio>
</ion-item>
</ion-radio-group>
on (ionChange)="mcqAnswer($event)"
mcqAnswer(eve) {
console.log(this.McAns)
}