【问题标题】:validate a textbox with default value验证具有默认值的文本框
【发布时间】:2018-09-10 12:41:38
【问题描述】:

我有一个如下的文本框:

  <div form="form-group">
    <label for="Title"> <h3>Title:</h3>  </label>
    <div [ngClass]="{
    'has-errors': (dataProcessingEditForm.controls.Title.errors && dataProcessingEditForm.controls.Title.dirty ),

    'has-success': (!dataProcessingEditForm.controls.Title.errors )
    }">
      <input type="text" name ="Title" class="form-control" autocomplete="off" placeholder="*Title"
             value="{{theDP.title}}" formControlName="Title">
      <!--Validations-->
      <ul class="help-block">
        <li *ngIf="(dataProcessingEditForm.controls.Title.errors?.required && dataProcessingEditForm.controls.Title.dirty)
                   ">
          This field is required</li>
      </ul>
    </div>
  </div>

文本框由我在 ngOnInit() 函数中从 DB 读取的数据填充。 显然,验证器不承认它具有价值,所以它要求我填写它。我应该如何修改验证器以实现价值?我使用了以下内容:

'has-success': (!dataProcessingEditForm.controls.Title.errors || dataProcessingEditForm.controls.Title.hasValue )

但似乎不起作用。 非常感谢您的帮助。

【问题讨论】:

  • 您能详细说明一下吗?

标签: angular html mean-stack


【解决方案1】:

只需用 ngModel 替换值

<div form="form-group">
    <label for="Title"> <h3>Title:</h3>  </label>
    <div [ngClass]="{
    'has-errors': (dataProcessingEditForm.controls.Title.errors && dataProcessingEditForm.controls.Title.dirty ),

    'has-success': (!dataProcessingEditForm.controls.Title.errors )
    }">
      <input type="text" name ="Title" class="form-control" autocomplete="off" placeholder="*Title"
             ngModel="theDP.title" formControlName="Title">
      <!--Validations-->
      <ul class="help-block">
        <li *ngIf="(dataProcessingEditForm.controls.Title.errors?.required && dataProcessingEditForm.controls.Title.dirty)
                   ">
          This field is required</li>
      </ul>
    </div>
  </div>

【讨论】:

  • 它给了我这个错误:错误错误:ExpressionChangedAfterItHasBeenCheckedError:表达式在检查后已更改。以前的值:'has-errors: false'。当前值:'has-errors: null'。
  • @user3075338 给了我同样的错误。加上文本框值变成:theDP.title
  • @user3075338 你用 ngModel 替换了 value 属性
  • @user3075338‌ 检查 sn-p.. 它不仅显示占位符。
  • @user3075338‌ 不确定我是否明白你的意思
猜你喜欢
  • 2011-07-02
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多