【问题标题】:How to set radio button value using Reactive form?如何使用响应式表单设置单选按钮值?
【发布时间】:2018-03-25 00:41:24
【问题描述】:

这是我尝试将表单单选按钮值设置为 1 的组件类:

import { FormGroup, FormControl } from '@angular/forms';

export class myComponent implements OnInit{
    pageForm: FormGroup;

    ngOnInit() {
        this.pageForm = new FormGroup({
            'gndr': new FormControl(1)
        });
    }
}

但是当页面加载时,单选按钮没有设置为男性并且两个选项都是空白的:

<div class="form-group">
    <label for="gender">Gender</label>
    <div class="radio">
        <label>
            <input type="radio" name="gndr" formControlName="gndr" value=1>Male
        </label>
    </div>
    <div class="radio">
        <label>
            <input type="radio" name="gndr" formControlName="gndr" value=0>Female
        </label>
    </div>
</div>

那么如何从我的组件类中加载单选按钮值?

【问题讨论】:

    标签: angular typescript angular2-forms


    【解决方案1】:

    如果您希望默认手动检查其中一个,您可以添加“已检查”标签,例如

    <div class="radio">
        <label>
            <input type="radio" name="gndr" formControlName="gndr" value=1 checked>Male
        </label>
    </div>
    <div class="radio">
        <label>
            <input type="radio" name="gndr" formControlName="gndr" value=0>Female
        </label>
    </div>
    

    编辑

    如果要使用类型字符串的默认值,请在FormControl中设置:

    component.ts

    this.pageForm = new FormGroup({
          'gndr': new FormControl('1')
        });
    

    component.html

    ...
    <input type="radio" formControlName="gndr" value=1>
    ...
    

    如果要使用类型编号的默认值,请在FormControl中设置:

    component.ts

    this.pageForm = new FormGroup({
          'gndr': new FormControl(1)
        });
    

    component.html

    ...
    <input type="radio" formControlName="gndr" [value]=1>
    ...
    

    【讨论】:

    • 是的,但是我如何从基于 FormControl 的组件类中设置它:'gndr': new FormControl(1)... 我认为它应该设置选中的参数。没有意义使用 FormControl 并在 HTML 中硬编码
    • 抱歉误会了,这应该可以'gndr': new FormControl('1')
    • 不确定您是否希望该值是字符串类型,就像您在 html 视图中建议的那样.. 但是字符串类型为 1 和 0 并没有任何意义。所以如果您可以将输入中的模板语法从value=1 和value=0 更改为[value]=1 和[value]=0。确保值的类型为 number。然后它应该与您原来的 `'gndr': new FormControl(1)` 一起使用
    猜你喜欢
    • 2019-10-14
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2013-10-18
    • 2019-08-29
    • 2013-07-24
    • 2015-03-22
    相关资源
    最近更新 更多