Angular 4复选框更改值

J. *_*Edu 34 rest typescript angular

如何在Angular 4中实现当您在复选框中注册时保存"A"或"B"值.尽我所能,他只是送我真假,我希望有人可以帮助我.

registry.component.ts

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

  });
Run Code Online (Sandbox Code Playgroud)

registry.component.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>
Run Code Online (Sandbox Code Playgroud)

这样我可以让控制台显示我想要的值(A或B),但在JSON中仍然是真或假.

SHO*_*HIA 64

这就是你要找的东西:

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

在课堂上:

checkValue(event: any){
   console.log(event);
}
Run Code Online (Sandbox Code Playgroud)

还包括FormsModule app.module.ts以使ngModel工作!

希望能帮助到你!

  • 它对我有用: `checkValue(event: any){` `console.log(event.currentTarget.checked);` `}` (3认同)

bal*_*nav 33

尝试一下,

模板

<input (change)="FieldsChange($event)" value="angular" type="checkbox"/>
Run Code Online (Sandbox Code Playgroud)

Ts文件

FieldsChange(values:any){
console.log(values.currentTarget.checked);
}
Run Code Online (Sandbox Code Playgroud)

  • 或者,将参数类型设置为“(event:Event)”而不是“(values:any)”,并通过“(event.target as HTMLInputElement).checked”访问检查属性 (3认同)
  • 另外,您可以使用 `[checked]="isChecked"` 将复选框绑定到模型 (2认同)

小智 19

我们可以做如下。我用的是角度12。

[网页]

<input type="checkbox" formControlName="lock" (change)="changeStatus($event)" />
Run Code Online (Sandbox Code Playgroud)

[TS]

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


小智 16

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

<input type="checkbox" [checked]="checkbox" (change)="changed($event)" id="no"/>
Run Code Online (Sandbox Code Playgroud)

  • 请不要只是转储代码块作为答案.一个好的答案解释了解决方案,并给出了一些背景 (3认同)
  • 这个转储的代码块为我工作-谢谢。 (3认同)

Axe*_*186 6

另一种方法是使用ngModelChange

模板:

<input type="checkbox" ngModel (ngModelChange)="onChecked(obj, $event)" />
Run Code Online (Sandbox Code Playgroud)

控制器:

onChecked(obj: any, isChecked: boolean){
  console.log(obj, isChecked); // {}, true || false
}

Run Code Online (Sandbox Code Playgroud)

我更喜欢这种方法,因为在这里您可以获得复选框的相关对象和true/false值。


小智 6

这对我有用,角度 9:

component.html 文件:

<mat-checkbox (change)="checkValue($event)">text</mat-checkbox>
Run Code Online (Sandbox Code Playgroud)

component.ts 文件:

checkValue(e){console.log(e.target.checked);}
Run Code Online (Sandbox Code Playgroud)


Add*_*Ltd 5

我想这就是您要实现的目标。

<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);
}
Run Code Online (Sandbox Code Playgroud)


Abd*_*zad 5

你可以使用这个:

<input type="checkbox" [checked]="record.status" (change)="changeStatus(record.id,$event)">
Run Code Online (Sandbox Code Playgroud)

在你的 ts 文件中,

changeStatus(id, e) {
    var status = e.target.checked;
    this.yourseverice.changeStatus(id, status).subscribe(result => {
        if (status)
            this.notify.success(this.l('AddedAsKeyPeople'));
        else
            this.notify.success(this.l('RemovedFromKeyPeople'));

    });
}
Run Code Online (Sandbox Code Playgroud)

这里,record是当前行的模型,status是布尔值。