【问题标题】:Angular 4 form validation is not workingAngular 4 表单验证不起作用
【发布时间】:2018-12-30 19:03:03
【问题描述】:

我是 Angular 4 的新手,我正在尝试在我的应用程序中实现 Angular 表单验证消息。

此处验证消息按预期显示,但文本字段和标签颜色不会根据状态更改。

HTML:

<form #AddressForm="ngForm" (ngSubmit)="SaveAddress(mAddress_Model)">
   <div class="form-group" [class.has-error]="Name.invalid && Name.touched" [class.has-success]="Name.valid">
   <label for="FName" class="control-label" >First Name *</label>
   <input type="text" required minlength="4" id="Name" name="Name" class="form-control "  [(ngModel)]="mAddress_Model.mFName"  #Name="ngModel">
    <div class="help-block alert-danger col-sm-12" *ngIf="Name.errors.required && Name.touched">
                    * First name is required
    </div>
  </div>
</form>

这里**[class.has-error]="Name.invalid &amp;&amp; Name.touched" [class.has-success]="Name.valid"** 不适合我,但验证消息 div 正在工作。

我关注了这个博客http://csharp-video-tutorials.blogspot.com/2018/01/displaying-angular-form-validation.html

谁能帮我解决这个问题。

【问题讨论】:

  • 您是否使用浏览器开发工具检查过 DOM?是否应用了该类?
  • 我在控制台@user184994 中得到了这个我认为它没有应用
  • 对,所以根据has-error类已经添加,听起来样式没有。你在使用 Bootstrap 吗?
  • 是的,我在 Index.html @user184994 中使用最新的引导程序

标签: angular forms typescript bootstrap-4


【解决方案1】:

也许改用这个?

[ngClass]="hasErros? 'some-class' : 'some-other-class'"

【讨论】:

    【解决方案2】:

    您可以修改您的输入标签并使用[ngClass] 属性将输入标签边框线更改为红色或任何颜色,文本也可以这样做。

    <input [ngClass]="{'decorate-red' : !mAddress_Model.mFName && flag, 'decorate-regular' : mAddress_Model.mFName && !flag}" type="text" required minlength="4" id="Name" name="Name" class="form-control "  [(ngModel)]="mAddress_Model.mFName"  #Name="ngModel">
    

    如果有错误,则将标志值分配为 false,否则为 true。

    在css中添加

    .decorate-red {
       border: 1px solid red !important;
    }
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签