You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular表单中如何获取单选按钮组的选中值?

解决Angular响应式表单中单选按钮组的值绑定问题

你的问题出在单选按钮组的表单控件绑定方式上,以下是修正步骤:

1. 修正HTML中的单选按钮绑定

将formControlName="broj"从父级div移到每个<input type="radio">元素上,同时为Bootstrap按钮添加动态激活类,确保选中状态可视化:

<div class="col">
  <div class="btn-group btn-group-toggle" data-toggle="buttons">
    <label class="btn btn-warning" [class.active]="eKotlarnica.get('broj')?.value === 'Једна лопата'">
      <input type="radio" name="broj" formControlName="broj" value="Једна лопата">
      <img src="/assets/images/1 lopata.png" alt="Option 1" width="50" height="50">
    </label>
    <label class="btn btn-warning" [class.active]="eKotlarnica.get('broj')?.value === 'Две лопате'">
      <input type="radio" name="broj" formControlName="broj" value="Две лопате">
      <img src="/assets/images/2 lopate.png" alt="Option 2" width="50" height="50">
    </label>
  </div>
</div>

关键说明:

  • Angular响应式表单要求formControlName必须直接绑定到表单控件元素(这里就是radio输入框),父容器无法识别该属性。
  • [class.active]指令用来同步Bootstrap按钮的选中状态,当控件值等于当前选项的value时,自动添加active类。

2. 可选:为表单添加验证(优化)

如果需要确保用户必须选择一个选项,可以在组件的表单初始化中添加验证器:

eKotlarnica = this.formBuilder.group({
  lozac: ['', Validators.required],
  broj: ['', Validators.required], // 添加必填验证
  vreme: ['', Validators.required],
})

3. 测试提交功能

修改完成后,点击提交按钮,onSubmit()方法中的this.eKotlarnica.value就能正确包含broj字段的选中值了。


内容的提问来源于stack exchange,提问作者Nemanja Terzić

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:40:28