[英]get input value in typescript
我有 2 个输入值,我需要对第一个input
值进行验证,即信用卡号输入,获取 ts 文件的input
值并检查 API 上的验证,同时用户仍在输入第二个input
,例如我的第一个输入值: 4444 4444 4444 4444
,所以我需要在进行验证之前使用subString()
来获取前 6 个数字,这是我尝试过的;
html文件
<div>
<input
(keypress)="numberOnly($event)"
class="input"
type="text"
(keyup)="onKey($event)"
[(ngModel)]="creditCardNo"
/>
</div>
<div>
<input
class="input"
type="text"
[(ngModel)]="cardHolderName"
/>
</div>
ts文件
onKey(event) {
this.creditCardNo = event.target.value;
const test = this.creditCardNo
.replace(/\s/g, '')
.toString()
.substr(0, 6);
this.paymentService.getCreditCardDetail('JPJSMN', test).subscribe(res => {
if (!res) {
return;
}
console.log(res);
});
}
使用(keyup)="onKey($event)"
获取值更改,并根据我得到的响应对 ts 文件进行验证,但是我注意到如果我使用(keyup)="onKey($event)"
,它不会检测到复制和粘贴,它一直在请求 API,如果有更好的做法来解决这个问题?
您可以选择创建自定义的“digitOnly”Angular 指令。
可以在此处找到有关如何执行此操作的出色指南: https://codeburst.io/digit-only-directive-in-angular-3db8a94d80c3
教程中显示的指令解决了复制和粘贴等问题。
如果您只想在用户以与编辑值相同的方式粘贴内容时更新 model,则可以使用
(ngModelChange)="pasteEvent($event)"
<div>
<input
(keypress)="numberOnly($event)"
class="input"
type="text"
(ngModelChange)="pasteEventcreditCardNo(creditCardNo)"
[(ngModel)]="creditCardNo"
/>
</div>
<div>
<input
class="input"
type="text"
(ngModelChange)="pasteEventcardHolderName(cardHolderName)"
[(ngModel)]="cardHolderName"
/>
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.