あなたは、テンプレートに以下のような何かを行うことができます。
<form class="quiz-form">
<div *ngFor="let option of quiz">
<label> {{option.question}}: </label>
<input type='checkbox' name='{{option.choice1}}' value="{{option.choice1}}" (change)="selectAnswer(option, $event)"/>
<label>{{option.choice1}} </label>
<input type='checkbox' name='{{option.choice2}}' value="{{option.choice2}}" (change)="selectAnswer(option, $event)"/>
<label>{{option.choice2}} </label>
</div>
<button type="submit" value="Submit"> Complete quiz </button>
</form>
およびコンポーネントファイルで:
ここ
selectAnswer(category, event) {
var index = this.answer.indexOf(event.target.value);
if (event.target.checked) {
this.answer.push(event.target.value);
} else {
if (index !== -1) {
this.answer.splice(index, 1);
}
}
console.log(this.answer);
}
が同じためplunkrです。
EDIT
<form class="quiz-form" (ngSubmit)="submitForm()">
<div *ngFor="let option of quiz">
<label> {{option.question}}: </label>
<input type='checkbox' name='{{option.choice1}}' value="{{option.choice1}}" (change)="selectAnswer(option, $event)"/>
<label>{{option.choice1}} </label>
<input type='checkbox' name='{{option.choice2}}' value="{{option.choice2}}" (change)="selectAnswer(option, $event)"/>
<label>{{option.choice2}} </label>
</div>
<button type="submit" value="Submit"> Complete quiz </button>
</form>
とコンポーネントTSファイルに:
submit(){
this.answer=[];
}
あなたの代わりにラジオボタンを使用する必要がありますか?ただ一つの選択肢が正しいでしょうか?またはその受け入れ可能なユーザーは、単一の質問の両方の選択肢を確認できますか? – Rahul