2017-11-09 15 views
1

trueまたはfalseではなく、チェックボックスの値を割り当てたいとします。どうすればこれを達成できますか?Angular form control nameにチェックボックスの値を割り当てる方法は?

<input formControlName="ota" value="OTA" type="checkbox"> 
+0

同様の質問 https://stackoverflow.com/questions/43154299/angular-2-checkbox-value-with-reactive-form –

+0

しかし、それは動作しません。私はformcontrolを使用しています – Karty

答えて

3

あなたはそれをチェックだならば、$event.target.valueを割り当てることpatchValue(またはsetValue)を使用するように変更イベントを使用することができます。そうでない場合は、別のものを割り当てます。

otaCtrl: FormControl; 

// code... 

this.otaCtrl = this.myForm.get('ota') as FormControl; 

DEMO

+0

ちょうどあなたが1つのチェックボックスのために働くあなたの解決策を得ることができたことをここに追加したいと思った。複数の動的チェックボックスを使用すると、関数を記述してイベントを送信してそれに追いつく必要がありました。 –

+0

こんにちは、私の質問に答えることができますhttps://stackoverflow.com/questions/47889068/reactive-formbuilder-doesnt-accept-form-control-name-from-functions-parameter – Karty

+0

あなたがこれに答えることができれば助けになるかもしれません。 – Karty

1

私は受け入れ答えを得ることができませんでした:otaCtrlは、フォームのコントロールのための変数である

<input formControlName="ota" (change)="$event.target.checked ? 
     otaCtrl.patchValue($event.target.value) : otaCtrl.patchValue('')" 
     value="OTA" type="checkbox"> 

:ここで私は、空の文字列を代入します複数の動的な組み込み形式のチェックボックス要素を扱うことができます。だから、(ブール値は、チェックボックスの値を仮定していた)私はこれをしなかったものを選択回答に基づいて:

export class DynamicFormComponent implements OnInit { 

    activeCtrl: FormControl; 
    ... 
    updateCheckBoxVal(prop, eve) { 
    this.activeCtrl = this.form.get(prop.key) as FormControl; 
    eve.checked ? this.activeCtrl.patchValue(true) : this.activeCtrl.patchValue(false); 
    } 
} 

HTMLファイル:これは誰か、と感謝を助け

<label *ngSwitchCase="'checkbox'" [attr.for]="prop"> {{prop.label}} 
     <input 
     [formControlName]="prop.key" 
     [id]="prop.key" 
     [type]="prop.type" 
     [checked]="prop.value" 
     (change)="updateCheckBoxVal(prop, $event.target);" 
     /> 
     </label> 

ホープ@ AJT_82ためインスピレーション

関連する問題