【问题标题】:Can we send value as Y if checkbox is checked and value as N if checkbox is unchecked in angular?如果复选框被选中,我们可以将值发送为 Y,如果复选框未选中,我们可以将值发送为 N 吗?
【发布时间】:2020-12-10 19:36:52
【问题描述】:

如果复选框被选中,我想将复选框值传递为 Y,如果复选框未选中,我想将值传递为 N。 这是我在 html 文件中的复选框代码

  <div class="col-sm-12">  
                      <label style="padding-left: 6px;">Status:</label>
                      <span style="padding-left: 10px;"></span>   
                     <input type="checkbox"                     
                     formControlName="Status" style="margin-left: 10px;" 
                     [ngClass]="{ 'is-invalid': submitted &amp;&amp; addTermForm.controls.Status.errors }">
                  
                     <div *ngIf="submitted &amp;&amp; addTermForm.controls.Status.errors" class="text-danger">
                     <div *ngIf="addTermForm.controls.Status.errors">
                       Status is required
                     </div>
                     </div>
                   </div>

这是我的 ts 文件验证

  ngOnInit(): void {
    this.termEditForm();
    this.addTermForm = this.formBuilder.group({
      RuleName: ['', [Validators.required, Validators.pattern('[a-zA-Z# ]*')]],
     // Dealer_Id: ['', [Validators.required, Validators.pattern('[0-9]*')]],
      Type:  ['', [Validators.required]],
      Status:  ['', [Validators.required]],
    });
   }

【问题讨论】:

  • 使用 [ngModel] 和 (ngModelChange) stackoverflow.com/questions/59910767/…。是的,您可以在 formGroup 中使用 [(ngModel)] 并在这种情况下进行指示。
  • 是的。我试过了,但我遇到了错误(在我的代码中不起作用)。你能详细解释一下吗?
  • 我给出了答案。想法是一样的:FormControl 存在是因为你在 .ts 中声明,它独立于 .html。您在 html 中使用“some”来更改值

标签: angular checkbox


【解决方案1】:
// replace your 
<input type="checkbox" formControName="Status"...>
//by
<input type="checkBox" 
       [ngModel]="addTermForm.get('Status').value=='Y'?true:false"
       (ngModelChange)="addTermForm.get('Status').setValue($event?'Y':'N')"
       [ngModelOptions]="{standalone:true}"
       [ngClass]="{'is-invalid': submitted && addTermForm.get('Status').errors}">

如您所见,您在使用 [(ngModel)] 的输入复选框中通常使用的所有“变量”都使用 addTermForm.get('Status') 的值

【讨论】:

  • 我试过这个。但是,状态的值被保存为空。不知道为什么?我们是否需要将 ngmodel 绑定到 ts 文件中的验证?
  • 我做了一个堆栈闪电战:stackblitz.com/edit/…。看到没有必要将 ngModel 绑定到验证。错误由 formControl 给出。顺便说一句,“Validators.required”在状态中没有做任何事情,“Y”或“N”没有错误,你可以创建一个自定义错误-我在 stackblitz 中做了一个-
猜你喜欢
  • 1970-01-01
  • 2021-10-14
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多