typescript - Angular 4 promjena vrijednosti checkboxa


Kako možete postići u Angular 4 da kada se registrirate u checkbox spremi vrijednost „A” ili „B”. Koliko god pokušavao, šalje mi samo true ili false, nadam se da mi netko može pomoći.

registry.component.ts

  this.userForm = new FormGroup({
   state: new FormControl('',),
  });

registri.komponenta.html

<div class="form-group">
  <label>State</label>
  <input type="checkbox"
         [(ngModel)]="isChecked"
         (change)="checkValue(isChecked?'A':'B')"
         formControlName="state"/>
</div>  

<pre>{{userForm.value | json}}</pre>

Na taj način mogu dobiti da konzola prikaže vrijednost koju želim (A ili B), ali u JSON-u je i dalje true ili false.

Odgovor #1

Ovo je ono što tražite:

<input type="checkbox" [(ngModel)]="isChecked" (change)="checkValue(isChecked?'A':'B')" />

Unutar vaše klase:

checkValue(event: any){
   console.log(event);
}

Uključite i FormsModule u app.module.ts kako bi ngModel radio!

Nadam se da pomaže!

Odgovor #2

Pokušaj s ovim,

Predložak

<input (change)="fieldsChange($event)" value="angular" type="checkbox"/>

Ts datoteka

fieldsChange(values:any):void {
  console.log(values.currentTarget.checked);
}

Odgovor #3

changed = (evt) => {    
this.isChecked = evt.target.checked;
}

<input type="checkbox" [checked]="checkbox" (change)="changed($event)" id="no"/>

Odgovor #4

Možemo učiniti sljedeće. Koristim Angular 12.

[Html]

<input type="checkbox" formControlName="lock" (change)="changeStatus($event)" />

[TS]

changeStatus(event:Event){
    const isChecked = (<HTMLInputElement>event.target).checked;
    console.log(isChecked)
}

Odgovor #5

Pretpostavljam da je ovo nešto što pokušavaš postići.

<input type="checkbox" value="a" (click)="click($event)">A
<input type="checkbox" value="b" (click)="click($event)">B

click(ev){
   console.log(ev.target.defaultValue);
}

Povezani članci