我正在使用freeze_support()
来获取数据用户在输入字段上键入的信息。
每次用户在键盘上打字时,此功能运行良好。但是,当用户在输入字段中粘贴值时,此功能无法运行。
如何解决此问题?
我需要同时使用(输入数字和粘贴数字,我需要运行此功能)
HTML
(keypress)="keyPress($event)"
Ts代码
<ion-input type="Number" (keypress)="keyPress($event)" placeholder="Phone Number" pattern="[0-9]*" name="phonenumber" required [(ngModel)]="phonenumber"></ion-input>
答案 0 :(得分:1)
(keypress)功能在您按下键盘时起作用,这就是为什么在粘贴数字时此功能不起作用的原因。别担心,Angular具有可以与粘贴(paste)
在您的html输入字段中只需添加(paste)="keyPress($event)"
,不要删除(keypress)="keyPress($event)"
函数。
当用户键入数字时,将运行按键功能;当用户粘贴数字时,将运行粘贴功能。
<ion-input type="Number" (keypress)="keyPress($event)" (paste)="keyPress($event)" placeholder="Phone Number" pattern="[0-9]*" name="phonenumber" required [(ngModel)]="phonenumber"></ion-input>
答案 1 :(得分:0)
请使用.scrollView
来使用粘贴功能
答案 2 :(得分:0)
粘贴是不同的事件,可以使用:
(paste)="onPaste($event)"
和.ts中的
onPaste(event) {
console.log(event);
}
或者您可以使用@HostListener
:
@HostListener('paste', ['$event'])
onPaste(event): void {
console.log(event);
}
答案 3 :(得分:0)
这是工作示例:
<ion-input type="Number" (paste)="onPaste($event)">
和您的ts中:
onPaste(event: ClipboardEvent) {
event.preventDefault();
let clipboardData = event.clipboardData || (window as any).clipboardData;
let pastedText = clipboardData.getData('text');
document.execCommand("insertHTML", false, pastedText);
console.log(pastedText);
}