如何过滤 intbox 中的粘贴值?
How can I filter pasted values in intbox?
我有一个收件箱,它在粘贴时接受任何文本值。我不想禁用此 intbox 中的 control+c 值,所以我怎样才能使它调节粘贴的字符值?
一些代码:
<intbox mold="rounded" id="intbxNumeroDaConta" width="90px" />
部分图片:
如果粘贴非数字文本,模糊焦点时会看到验证错误框。这将提示用户修正他们的价值。
以下解决方案适用于 chrome、firefox、IE 11 或更高版本
<zk xmlns:h="client/attribute">
avoid pasting non-number characters
<intbox h:onPaste="preventPastingNonDigital(event)" />
<script><![CDATA[
function preventPastingNonDigital(e){
var pastedText = e.clipboardData ? e.clipboardData.getData('text') //chrome, firefox
: window.clipboardData.getData('text'); //ie11
if (!new RegExp('^[0-9]+$').test(pastedText)){
e.preventDefault();
}
}
]]></script>
</zk>
参考:
https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/getData
旧版IE不支持onPaste
,请参考JavaScript get clipboard data on paste event (Cross browser)
我有一个收件箱,它在粘贴时接受任何文本值。我不想禁用此 intbox 中的 control+c 值,所以我怎样才能使它调节粘贴的字符值?
一些代码:
<intbox mold="rounded" id="intbxNumeroDaConta" width="90px" />
部分图片:
如果粘贴非数字文本,模糊焦点时会看到验证错误框。这将提示用户修正他们的价值。
以下解决方案适用于 chrome、firefox、IE 11 或更高版本
<zk xmlns:h="client/attribute">
avoid pasting non-number characters
<intbox h:onPaste="preventPastingNonDigital(event)" />
<script><![CDATA[
function preventPastingNonDigital(e){
var pastedText = e.clipboardData ? e.clipboardData.getData('text') //chrome, firefox
: window.clipboardData.getData('text'); //ie11
if (!new RegExp('^[0-9]+$').test(pastedText)){
e.preventDefault();
}
}
]]></script>
</zk>
参考: https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/getData
旧版IE不支持onPaste
,请参考JavaScript get clipboard data on paste event (Cross browser)