angular - p-inputMask ng-model 未清除无效值

标签 angular primeng input-mask

我正在使用 PrimeNG 的 inputMask 字段

<p-inputMask name="maskValue" [(ngModel)]="attr.attributeValue" mask="aa/99" placeholder="aa/99"></p-inputMask>

{{attr.attributeValue}}

但如果我在文本框中输入 a 并聚焦,该文本框将被清除,但 ng-model attr.attributeValue 仍保持值 a_/__ 。我们怎样才能同时清除 ng-model?

最佳答案

通过查看 source of inputMask ,您可以看到有一个名为 filled 的 bool 属性。

因此我们可以通过 ViewChild 访问该属性的值以了解输入是否已填充,并使用 onBlur 事件,您可以在该事件中重新初始化您的模型未填满。

HTML

<p-inputMask #myInputMask name="maskValue" [(ngModel)]="attr.attributeValue" mask="aa/99" placeholder="aa/99" (onBlur)="isInputMaskFilled($event)"></p-inputMask>

TS

@ViewChild('myInputMask') myInputMask: InputMask;

isInputMaskFilled(event) {
  if(!this.myInputMask.filled) {
    this.attr = { attributeValue: '' };
  }
}

参见 StackBlitz

关于angular - p-inputMask ng-model 未清除无效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50286780/

相关文章:

angular - 如何在 Angular 中订阅 Observable

angular - 使用 Angular 响应式(Reactive)表单创建嵌套表单组

Angular 货币编辑器

css - PrimeNG 数据表设置 rowStyleClass 是设置高亮样式

javascript - 出生日期输入掩码 react

angular - DevExtreme 隐藏列 EditMode Angular2

angular - 无法在拦截器中进行订阅

primeng - 有没有办法固定 PrimeNg DataTable 的高度,无论行数如何?

javascript - 动态更改 bootstrap-inputmask.js 上的掩码

reactjs - 将输入掩码添加到 React DatePicker