gpt4 book ai didi

javascript - Angular - 在粘贴事件中获取内容

转载 作者:太空狗 更新时间:2023-10-29 17:41:56 25 4
gpt4 key购买 nike

我有一个 Angular 组件,允许用户将数据输入到 textarea 中。有两个事件与此 keydownpaste 相关。这两个事件都会触发相同的方法,该方法将尝试确定输入的数据。

我遇到的问题是当数据被粘贴 paste 时,我得到了 formControl 的值,但它的值是在数据被粘贴之前并且没有'不包括我实际上刚刚进入该领域的内容。

HTML

<textarea 
formControlName="multiSearch"
class="form-control"
placeholder="Enter one or more values. One per line."
rows="6"
(keydown)="keyDownFunction($event)"
(paste)="onPaste()">
</textarea>

组件

  /**
* If we hit enter in our text area, determine the data type
*/
keyDownFunction(event) {

// Enter Key?
if (event.keyCode == 13) {
this.determineDataType();
}
}

/**
* If we paste data in our text area, determine the data type
*/
onPaste() {
this.determineDataType();
}

/**
* Using regex, determine the datatype of the data and confirm with the user.
*/
determineDataType() {
console.log(this.searchForm.value.multiSearch)
}

问题如何在 paste 事件触发后立即访问粘贴到表单中的数据,而不是粘贴前的值?

最佳答案

您可以通过处理input事件从paste事件获取粘贴的内容和textarea的更新内容:

<textarea #myText (paste)="onPaste($event)" (input)="onInput(myText.value)"></textarea>

使用此代码:

onPaste(event: ClipboardEvent) {
let clipboardData = event.clipboardData || window.clipboardData;
let pastedText = clipboardData.getData('text');
...
}

onInput(content: string) {
...
}

参见 this stackblitz用于演示。

关于javascript - Angular - 在粘贴事件中获取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50138910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com