如何在具有 maxLength 属性的输入中获取所有粘贴的字符串?
How to get all of the pasted string, in input which has a maxLength attribute?
我需要在具有 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>
如果希望粘贴的字符串更大,请设置更高的 maxLength
。您的示例输入字符串的长度为 29。所以这里是修改后的代码 maxLength=30
.
const onPasteFn = (e) => {
setTimeout(() => document.getElementById("demo").innerHTML = e.target.value, 0)
}
<input type="text" maxLength="30" onpaste="onPasteFn(event)" />
<p id="demo"></p>
考虑使用活动中的 clipboardData
,您可以使用 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 支持。
您可以通过函数 getData()
访问 clipboardData
,并打印它而不是 e.target.value()
。如果您将它存储在一个临时变量中,就像我在示例中所做的那样,您就可以对粘贴的字符串进行进一步的阐述。
它适用于合理最新版本的浏览器(例如FF 22+)。
const onPasteFn = (e) => {
var myData = e.clipboardData.getData("text/plain");
setTimeout(() => document.getElementById("demo").innerHTML = myData, 0)
}
<input type="text" maxLength="5" onpaste="onPasteFn(event)" />
<p id="demo"></p>
我需要在具有 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>
如果希望粘贴的字符串更大,请设置更高的 maxLength
。您的示例输入字符串的长度为 29。所以这里是修改后的代码 maxLength=30
.
const onPasteFn = (e) => {
setTimeout(() => document.getElementById("demo").innerHTML = e.target.value, 0)
}
<input type="text" maxLength="30" onpaste="onPasteFn(event)" />
<p id="demo"></p>
考虑使用活动中的 clipboardData
,您可以使用 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 支持。
您可以通过函数 getData()
访问 clipboardData
,并打印它而不是 e.target.value()
。如果您将它存储在一个临时变量中,就像我在示例中所做的那样,您就可以对粘贴的字符串进行进一步的阐述。
它适用于合理最新版本的浏览器(例如FF 22+)。
const onPasteFn = (e) => {
var myData = e.clipboardData.getData("text/plain");
setTimeout(() => document.getElementById("demo").innerHTML = myData, 0)
}
<input type="text" maxLength="5" onpaste="onPasteFn(event)" />
<p id="demo"></p>