2017-03-03 99 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'也沒有用 - 即使它工作,它也會在服務器上顯示一條消息,而不是在瀏覽器運行的機器上。 –

相關問題