【问题标题】:Validating input of type number doesn't work properly in Angular2验证类型号的输入在 Angular2 中无法正常工作
【发布时间】:2016-08-08 15:16:27
【问题描述】:

我正在尝试将 number 类型的输入字段验证为非空。验证成功,虽然它是空的。

如果输入字段的类型为 text 则成功。这是一个结合了这两种情况的示例:

@Component({
  ...
})
export class MyComponent {

  form: ControlGroup;
  name: Control;
  duration: Control;


  constructor(private _formBuilder: FormBuilder) {
      let thisComp = this;

      thisComp.name = new Control('', Validators.compose([Validators.required]));
      thisComp.duration = new Control('', Validators.compose([Validators.required]));

      thisComp.form = thisComp._formBuilder.group({
        name: thisComp.name,
        duration: thisComp.duration
      });

  }


  onSubmit() {
     ...
  }


}
<form [ngFormModel]="form" (submit)="onSubmit()" novalidate>


     <div>
         <label for="cntrlName">Name</label>
         <input id="cntrlName" ngControl="name" #name placeholder="Enter ..." name="name" type="text" minlength="1" maxlength="200">
         <div *ngIf="name.dirty && !name.valid && !name.pending">
            <p *ngIf="name.errors.required">Name is required.</p>
         </div>
     </div>


     <div>
         <label for="cntrlDuration">Duration (in minutes)</label>
         <input id="cntrlDuration" ngControl="duration" f#duration placeholder="Enter ..." name="duration" type="number">
         <div *ngIf="duration.dirty && !duration.valid && !duration.pending">
            <p *ngIf="duration.errors.required">Duration is required.</p>
         </div>
     </div>

</form>

在前面的示例中,即使我插入一个数字然后删除它,也不会显示错误消息“名称是必需的”。

【问题讨论】:

    标签: angular angular2-forms angular2-formbuilder


    【解决方案1】:

    【讨论】:

    • 感谢您的及时反馈。我认为应该更新Angular2官方文档来提及这一点!是否同样缺乏对其他 HTML5 类型的支持,例如日期等 (w3schools.com/html/html_form_input_types.asp)?有计划支持吗?
    • 我猜这应该得到 fixef 而不是记录在案。
    猜你喜欢
    • 2023-03-27
    • 2022-08-13
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多