首页 > 解决方案 > 如何在具有 maxLength 属性的输入中获取所有粘贴的字符串?

问题描述

我需要在具有 maxLength 属性的输入中获取所有粘贴的字符串。

但是在“onpaste”事件中,没有属性可以获取所有粘贴的字符串。

例如,使用此字符串检查以下代码段:

“AAAAA-BBBBB-BBBBB-BBBBB-BBBBB”

输出为:“AAAAA”

但我需要所有的字符串。

const onPasteFn = (e) => {
  setTimeout(() => document.getElementById("demo").innerHTML = e.target.value, 0)
}
<input type="text" maxLength="5" onpaste="onPasteFn(event)" />

<p id="demo"></p>

标签: javascripthtmlstringclipboardpaste

解决方案


考虑使用clipboardDatafrom 事件,您可以使用它getData()来抓取从剪贴板粘贴的文本,如下所示:

const onPasteFn = (e) => {
  document.getElementById("demo").textContent = (e.clipboardData || window.clipboardData).getData('text');
}
<input type="text" maxLength="5" onpaste="onPasteFn(event)" />

<p id="demo"></p>

请参阅文档中的示例here。请注意,|| window.clipboardData用于 IE 支持的后备。


推荐阅读