简体   繁体   English

如何在按键上更新 event.target.value?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM