gpt4 book ai didi

javascript - 如何仅禁用字符串部分而不是数字的粘贴选项?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:30:15 26 4
gpt4 key购买 nike

我有一个只接受数字的文本框。我已经完成了那部分,但问题是我无法禁用 textbox 的粘贴选项,即 onPaste="return false;"。因此,可以通过粘贴选项输入字符串。那么,如何仅禁用字符串部分而不是数字部分的粘贴选项?

function OnlyNumbers()
{
if (event.keyCode <= 46 || event.keyCode > 57 || event.keyCode == 47) event.returnValue = false;
}

<asp:TextBox ID="txtRecApr" class="txt" autocomplete="off"
onKeyPress="OnlyNumbers()" onfocus="javascript:this.select();"
runat="server" Width="60px" MaxLength="5" AutoPostBack="True"
onPaste="return false;" ontextchanged="txtRecApr_TextChanged">
</asp:TextBox>

最佳答案

试试这个脚本。希望这对您有所帮助。

<script type="text/javascript">  

$(document).ready(function () {
var keyDown = false, ctrl = 17, vKey = 86, Vkey = 118;

$(document).keydown(function (e) {
if (e.keyCode == ctrl) keyDown = true;
}).keyup(function (e) {
if (e.keyCode == ctrl) keyDown = false;
});

$('input[type=text]').on('keypress', function (e) {
if (!e) var e = window.event;
if (e.keyCode > 0 && e.which == 0) return true;
if (e.keyCode) code = e.keyCode;
else if (e.which) code = e.which;
var character = String.fromCharCode(code);
if (character == '\b' || character == ' ' || character == '\t') return true;
if (keyDown && (code == vKey || code == Vkey)) return (character);
else return (/[0-9]$/.test(character));
}).on('focusout', function (e) {
var $this = $(this);
$this.val($this.val().replace(/[^0-9]/g, ''));
}).on('paste', function (e) {
var $this = $(this);
setTimeout(function () {
$this.val($this.val().replace(/[^0-9]/g, ''));
}, 5);
});
});
</script>

编辑:

我将提供一个简短的 View 。正如您所说,您已经完成了只接受数值的部分。所以,我不会专注于此。如您所见,我使用了 replace(/[^0-9]/g, '')。它将替换所有与 focusout 和粘贴上的范围 0-9 不匹配的字符。欲了解更多信息,请访问 Here.

关于javascript - 如何仅禁用字符串部分而不是数字的粘贴选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31646180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com