我必须创建一个文本框,它将忽略所有非数字输入。我试图使用这个代码,我发现在这个网站
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">