Javascript onkeypress无法使用asp.net Web窗体中的文本框
Javascript onkeypress无法使用asp.net Web窗体中的文本框,javascript,c#,asp.net,Javascript,C#,Asp.net,onkeypress无法使用asp.net Web表单中的textbox 我想防止特殊字符和字母 以下是aspx <wijmo:C1InputText ID="SAC" runat="server" Style="width: 150px; display: inline-block;" onkeydown="return onlyNumbers(this,event);"> </wijmo:C1InputText> function onlyNumbers(txt,
onkeypress
无法使用asp.net Web表单中的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;
}
仅函数编号(txt,事件){
var charCode=(event.which)?event.which:event.keyCode
if(charCode==46){
if(txt.value.indexOf(“.”)小于0)
返回true;
其他的
返回false;
}
var regex=new RegExp(“^[a-zA-Z0-9]+$”;
var key=String.fromCharCode(!event.charCode?event.which:event.charCode);
如果(!正则表达式测试(键)){
event.preventDefault();
返回false;
}
如果(字符码>31&(字符码<48 | |字符码>57)&&charCode!=190)
返回false;
返回true;
}
它返回false,但不阻止输入。
如果我用onkeydown替换onkeypress,它会工作请看一下这篇文章: 这是您想要的答案的一部分: OnKeyDown允许您在文本框中输入字符之前触发事件,以便您可以在确定是否应允许之前检查所按下的字符 OnKeyUp将允许您基本上按住一个键,并且在释放该键之前不会触发事件 OnKeyPress将为按下的每个字符键(包括按下的字符键)触发一个事件
是的,但是如何防止onkeypress事件进入正如我所说的,keypress事件只会触发字符([a-z][0-9])。在这里,您尝试捕捉“.”,因此只能使用onkeydown捕捉它。请看这篇文章:如果这个答案有助于你找出问题所在,不要忘记将其标记为解决方案。
onkeypress
设置event.charCode
,而不是event.keyCode
。但是,它已被弃用,您应该改用onkeydown
。我不确定你到底在问什么,如果你使用onkeydown
,你的问题听起来一切都很好,那么到底是什么问题?编辑了问题。事实上,我试图阻止特殊字符和字母。只允许使用数字和小数。使用onkeydown不如使用on keypress使用onkeydown不如使用on keypress
准确程度如何?你能详细说明一下吗?再次声明:onkeypress
现在被弃用。