如何获得所有粘贴的字符串,在输入中有一个最大长度属性?

2022-07-16 00:00:00 paste string clipboard javascript html

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

但在"onPaste"事件中,没有获取所有粘贴的字符串的属性。

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

";AAAAA-BBBBB-BBBBB-BBBBB-BBBBB";

输出为:";AAAAA";

但我需要所有字符串。

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
const onPasteFn = (e) => {
  setTimeout(() => document.getElementById("demo").innerHTML = e.target.value, 0)
}
<input type="text" maxLength="5" onpaste="onPasteFn(event)" />

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


解决方案

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

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
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支持。

相关文章