[英]How to update event.target.value on keypress?
I am working to make postal code validation but I am not able to get updatedValue
using event.target.value
its showing oldValue
我正在努力进行邮政编码验证,但我无法使用event.target.value
获取其显示的oldValue
updatedValue
HTML code: HTML代码:
<input type="text" style="color:black !important;width:100%;" (keypress)="numericOnly($event);" name="fname" [(ngModel)]='value' autofocus>
.ts file .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;
}
when I trying to access the target value using event.target.value
its giving oldVlaue i want to get recently typed value on keypress
event.whenever I used keyup
event its updating ngModel
which I don't want.当我试图访问使用目标值event.target.value
它给oldVlaue我想在最近输入的值keypress
我用event.whenever keyup
事件及其更新ngModel
我不想要的。
I would change [(ngModel)]='value'
to [ngModel]='value'
so that the model would not be updated on changes and then use (keyup)
.我会将[(ngModel)]='value'
更改为[ngModel]='value'
以便模型不会在更改时更新,然后使用(keyup)
。
Template code:模板代码:
<input type="text" style="color:black !important;width:100%;" (keyup)="numericOnly($event);" name="fname" [ngModel]='value' autofocus>
As long as your numericOnly
method updates your model ( this.value
) when the condition is met (as is doing now) you don't need the two-way data binding of ngModel.只要您的numericOnly
方法在满足条件时更新您的模型( this.value
)(就像现在所做的那样),您就不需要 ngModel 的双向数据绑定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.