【问题标题】:Material design input show error材料设计输入显示错误
【发布时间】:2016-11-14 13:44:36
【问题描述】:

我在 angular2 中使用 Material Design lite。

我根据需要标记了一个输入字段,例如:

<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
                <input class="mdl-textfield__input"
                       type="text"
                       id="user"
                       [(ngModel)]="login.user"
                       ngControl="user"
                       #user="ngForm"
                       (blur)="onBlur()"
                       required
                       />
                <label class="mdl-textfield__label" for="user">User</label>
                <span class="mdl-textfield__error">Field is required.</span>
            </div>

但是当我刚刚加载页面时,它甚至显示错误消息,我没有触摸该字段。

如何避免?

【问题讨论】:

    标签: angular material-design


    【解决方案1】:

    !user.valid 表示需要用户(有效)。
    !user.pristine 表示最终用户应该触摸输入字段,然后将显示错误消息。

    <span [class.mdl-textfield__error]="!user.valid && !user.pristine" 
          *ngIf="!user.valid && !user.pristine">Field is required.
    </span>
    

    如果您不想使用 pristine,只需删除其他条件即可。

    【讨论】:

    • 它没有按预期工作,因为输入字段仍然是红色的。
    • 它没有按预期工作。当我将输入字段保留为空值时,它不会被标记为红色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 2021-11-07
    相关资源
    最近更新 更多