我正在尝试制作一个不允许输入数字的文本框
我尝试了一些代码,但没有工作
以下是我的尝试:
<asp:RegularExpressionValidator runat="server" ID="txtSurnameValidation"
ControlToValidate="txtSurname" ValidationExpression="[a-zA-Z ]*$" Display="Dynamic">
</asp:RegularExpressionValidator>
答案 0 :(得分: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>
答案 1 :(得分: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+");
}