Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onkeypress无法使用asp.net Web窗体中的文本框_Javascript_C#_Asp.net - Fatal编程技术网

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
现在被弃用。