【发布时间】:2019-07-30 08:11:26
【问题描述】:
onkeypress 不能在 asp.net 网络表单中使用 textbox
我想防止特殊字符和字母
下面是aspx
<wijmo:C1InputText ID="SAC" runat="server" Style="width: 150px; display: inline-block;" onkeydown="return onlyNumbers(this,event);">
</wijmo:C1InputText>
function onlyNumbers(txt, event) {
var charCode = (event.which) ? event.which : event.keyCode
if (charCode == 46) {
if (txt.value.indexOf(".") < 0)
return true;
else
return false;
}
var regex = new RegExp("^[a-zA-Z0-9]+$");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode!=190)
return false;
return true;
}
它返回 false 但不阻止进入。 如果我用 onkeydown 替换 onkeypress 就可以了
【问题讨论】:
-
onkeypress设置event.charCode而不是event.keyCode。但是它已被弃用,您应该改用onkeydown。我不确定您到底在问什么,如果您改用onkeydown,您的问题听起来一切正常,那么到底是什么问题? -
编辑了问题。实际上,我正在尝试防止特殊字符和字母。只允许数字和小数。并且使用 onkeydown 效果不如 on keypress
-
using onkeydown it is not working as well as with on keypress究竟如何?你能详细说明吗?同样:onkeypress现在已被弃用。
标签: javascript c# asp.net