我有一个在粘贴时接受任何文本值的intbox。我不想在此intbox中禁用control + c值,那么如何才能将其粘贴到regect char值?
一些代码:
<intbox mold="rounded" id="intbxNumeroDaConta" width="90px" />
一些图片:
答案 0 :(得分:0)
如果粘贴非数字文本,则在模糊焦点时应看到验证错误框。这将暗示用户修改其价值。
以下解决方案适用于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>
REF: https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/getData
对于较旧的IE,他们不支持onPaste
,因此请参阅JavaScript get clipboard data on paste event (Cross browser)