如何限制文本框只接受数字和退格



我必须创建一个文本框,它将忽略所有非数字输入。我试图使用这个代码,我发现在这个网站

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
            e.Handled = Not Char.IsDigit(e.Keychar)
End Sub

但是我在这部分代码中有一个错误System.Windows.Forms.KeyPressEventArgs

我做错了什么?

希望对您有所帮助

  Sub btnDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
    if e.KeyChar= Chr(8)
       'do something for backspace
    else if e.KeyChar=(CHr(13)
       'do something for enter
    end if
    end sub

我同意戴的观点在ASP.net中的击键应该总是在客户端进行管理,以避免不必要的回发和避免服务器过载。如果你不熟悉Javascript,你可以参考这个来自W3School的优秀教程来管理输入的onChangeEvent

http://www.w3schools.com/jsref/event_onchange.asp

如果你真的想管理键'on fly',你可以管理'onkeyDown'事件http://www.w3schools.com/jsref/event_onkeydown.asp

在代码后面使用

if(Regex.IsMatch(yourStringToValidate,"^[a-zA-Z0-9\$]+$")
{
   //Place your msg
}
else
{
 //Place your validation msg
}

尝试使用MaskedTextBox并将掩码设置为如下内容:

maskedTextBox1.Mask = "d*";

这段代码应该放在html的header部分

我已经使用Jquery库来验证目的

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
 <script type="text/javascript">
        $(document).ready(function() {
        $('#mytext').keydown(function(e) {
                if (e.shiftKey) e.preventDefault();
                else {
                    var nKeyCode = e.keyCode;
                    //Ignore Backspace and Tab keys
                    if (nKeyCode == 8 || nKeyCode == 9) return;
                    if (nKeyCode < 95) {
                        if (nKeyCode < 48 || nKeyCode > 57) e.preventDefault();
                    } else {
                        if (nKeyCode < 96 || nKeyCode > 105) e.preventDefault();
                    }
                }
            });
        });
    </script>

Html代码

<input type="text" id="mytext">

相关内容

  • 没有找到相关文章

最新更新