我正在努力进行邮政编码验证,但无法updatedValue
使用event.target.value
其显示oldValue
HTML代码:
<input type="text" style="color:black !important;width:100%;" (keypress)="numericOnly($event);" name="fname" [(ngModel)]='value' autofocus>
.ts文件
numericOnly(event): boolean {
console.log("element", event);
console.log('element.value', event.target.value);
let patt = new RegExp("^[a-z A-Z 0-9]*-?[a-z A-Z 0-9]*$");
console.log('this.value', this.value);
let result = patt.test(event.target.value);
console.log('result', result)
if (result == false) {
// event.target.value = this.value
// this.value = event.target.value;
const val = <string>event.target.value
if (val && val.length > 0) {
this.value = event.target.value;
event.preventDefault();
}
}
return result;
}
当我尝试使用event.target.value
给定的oldVlaue访问目标值时,我想在event.when上获取最近键入的值,而keypress
无论何时我使用的keyup
事件ngModel
都不需要更新。
我将更改为[(ngModel)]='value'
,[ngModel]='value'
以便该模型不会根据更改进行更新,然后使用(keyup)
。
模板代码:
<input type="text" style="color:black !important;width:100%;" (keyup)="numericOnly($event);" name="fname" [ngModel]='value' autofocus>
只要您的numericOnly
方法this.value
在满足条件时更新模型()(如现在所做的那样),就不需要ngModel的双向数据绑定。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句