2017-03-03 107 views
3

我试图让一个文本框不允许输入数字如何不允许用户输入数字的文本框

我已经尝试了一些代码,但不工作

这里是我的曾尝试:

<asp:RegularExpressionValidator runat="server" ID="txtSurnameValidation" 
    ControlToValidate="txtSurname" ValidationExpression="[a-zA-Z ]*$" Display="Dynamic"> 
</asp:RegularExpressionValidator> 
+3

永远值得记住[虚虚实实程序员认为有关名称](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) –

+0

@Damien_The_Unbeliever太好了!很多网站都恨我,因为我的名字只有2个字符:) – EdSF

回答

3

它的工作,但它不是显示任何消息,因为您没有设置的情况下,确认任何消息未所以加ErrorMessage="* Alphabets Only"因此,如果有人进入数字会显示此消息

<asp:TextBox runat="server" ID="txtSurname"></asp:TextBox> 
     <asp:RegularExpressionValidator runat="server" ID="txtSurnameValidation" 
    ControlToValidate="txtSurname" ValidationExpression="[a-zA-Z ]*$" ErrorMessage="* Alphabets Only" Display="Dynamic"> 
</asp:RegularExpressionValidator> 
+0

谢谢我的朋友 –

0

大概回答这里:Prevent numbers from being pasted in textbox in .net windows forms

基本上,你可以在TextChanged事件挖掘不允许号码中输入或粘贴。您也可以使用KeyDown和KeyUp事件,但它们不会防止粘贴数字。因此TextChanged是首选和推荐。

string _latestValidText = string.Empty; 
private void TextBox_TextChanged(object sender, EventArgs e) 
{ 
    TextBox target = sender as TextBox; 
    if (ContainsNumber(target.Text)) 
    { 
     // display alert and reset text 
     MessageBox.Show("The text may not contain any numbers."); 
     target.Text = _latestValidText; 
    } 
    else 
    { 
     _latestValidText = target.Text; 
    } 
} 
private static bool ContainsNumber(string input) 
{ 
    return Regex.IsMatch(input, @"\d+"); 
} 
+2

问题标签为[tag:asp.net] - 你不想在每次按键时往返服务器, 'MessageBox.Show'也没有用 - 即使它工作,它也会在服务器上显示一条消息,而不是在浏览器运行的机器上。 –

相关问题