【问题标题】:How to get radio button value as a number如何将单选按钮值作为数字获取
【发布时间】:2020-06-01 18:56:02
【问题描述】:

有没有办法将单选按钮的值作为整数获取? 我正在提交一个表单,但我从单选按钮获得的值始终是一个字符串,我尝试了很多解决方案,但没有一个有效。

  <div class="form-check form-check-inline">
          <input class="form-check-input" formControlName="note" type="radio"  value='3' >
          <label class="form-check-label" for="inlineRadio3">Advanced</label>
        </div>

 <div class="form-check form-check-inline">
          <input class="form-check-input" formControlName="note" type="radio"  value=3 >
          <label class="form-check-label" for="inlineRadio3">Advanced</label>
        </div>

这是我提交表单时得到的结果:

为了使 web API 工作,我需要这样的note : 3,请帮助。 [更新]

这是我提交表单的方式:

this.Myser.AddAll(this.rateform.value.lstrates).subscribe(data => console.log(data) );

这就是我声明我的表单的方式:

this.rateform = this.fb.group({
      lstrates: this.fb.array([
        this.fb.group({
          fieldId: [''],
          memberId: [''],
          note: [''],
          fieldName:['']
        }),
      ]),
    });

但问题是,note 属性必须是数字。所以我不知道如何从单选按钮获取它作为整数,我应该创建另一个列表并将其转换为整数吗?还是有更好的方法?

【问题讨论】:

  • 你到底尝试了什么?
  • 你试过[value]="3"还是[ngValue]="3"
  • 您是如何提交表单的?角在哪里?它现在看起来像一个正常的形式。
  • 你能提供stackblitz演示吗?
  • 该属性将始终是一个字符串,唯一可能的方法是在提交表单时将其转换为您想要的任何内容

标签: html angular typescript


【解决方案1】:

在这种情况下,您需要使用[value]="3" 并跳过value="3",它允许将任何类型作为值传递,包括对象等。

见:angular doc binding syntax

如果不是,您也可以导入FormsModule

演示:https://stackblitz.com/edit/angular-ivy-ll3ckc?file=src%2Fapp%2Fapp.component.html

【讨论】:

  • 我得到:无法绑定到 'ngValue',因为它不是 'input'.ng 的已知属性
  • 尝试为此组件导入 FormsModule。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 2014-12-05
  • 2015-06-26
  • 2013-03-28
  • 2021-08-26
  • 1970-01-01
相关资源
最近更新 更多