如何过滤 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)