Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FormControl布尔值,在angular 2中没有默认值_Javascript_Angular_Angular Reactive Forms_Angular Validation - Fatal编程技术网

Javascript FormControl布尔值,在angular 2中没有默认值

Javascript FormControl布尔值,在angular 2中没有默认值,javascript,angular,angular-reactive-forms,angular-validation,Javascript,Angular,Angular Reactive Forms,Angular Validation,我在angular 2中使用了反应形式(4.1.2) 我有一个布尔属性,我不想有一个默认值,但它应该是必需的 这是我创建表单的方式: constructor(private fb: FormBuilder) { this.form = this.fb.group({ payedOvertime: [false, Validators.required], }); } 和我的html: <div class="form-group"> <

我在angular 2中使用了反应形式(4.1.2)

我有一个布尔属性,我不想有一个默认值,但它应该是必需的

这是我创建表单的方式:

constructor(private fb: FormBuilder) {
    this.form = this.fb.group({
        payedOvertime: [false, Validators.required],
    });
}
和我的html:

<div class="form-group">
    <label>Payed overtime</label>
    <label>
        <input type="radio" name="payedOvertime" formControlName="payedOvertime" [value]="true" />Yes
    </label>
    <label>
        <input type="radio" name="payedOvertime" formControlName="payedOvertime" [value]="false" />No
    </label>
</div>

有偿加班
对
不

问题是,尽管这样做有效,但单选按钮是预选的,但我不希望这样,而是应该通过单击其中一个单选按钮来选择它。如果两个单选按钮均未单击,我希望表单无效。

付款时间:[false,Validators.required]
更改为
付款时间:[null,Validators.required]


假设您将其设置为
false
,它将匹配模板中
No
单选按钮的值,并在默认情况下选择它(正确地选择)。将其设置为
null
将阻止Angular将值与模板中声明的任何值相匹配,因此将选择这些单选按钮中的任何一个。

仅更改
验证器。必需的
验证器。必需的True
, 比如:


付款人时间:[false,Validators.requiredTrue]

如果它是一个真布尔值,为什么不使用一个简单的复选框呢?它必须是单选按钮吗?