我正在使用C#3.5,我的项目有问题,我想制作一个文本框只接受数字。如果用户尝试输入字符,则应显示“请仅输入数字”的消息,而在另一个文本框中,它必须接受有效的电子邮件ID消息,如果该消息无效则应显示。它必须显示无效的用户ID。
答案 0 :(得分:1)
您可以使用验证控制然后使用正则表达式。对于数字,您可以使用CompareValidator
<asp:CompareValidator ID="CompareValidator1" runat="server"
ErrorMessage="CompareValidator" Operator="DataTypeCheck" Type="Integer"></asp:CompareValidator>
和电子邮件RegularExpressionValidator
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ErrorMessage="RegularExpressionValidator"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
答案 1 :(得分:1)
function onlyNumbers(evt)
{
var e = event || evt;
// for trans-browser compatibility
var charCode = e.which || e.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
使用上面的函数并将其应用于文本框的onkeypress事件,上面是一个javascript,而对于另一个文本框,使用必需字段验证器它将起作用。希望这会对你有所帮助。
答案 2 :(得分:1)
对于“仅限数字”验证,您可以使用CompareValidator
Operator="DataTypeCheck"
<asp:CompareValidator runat="server" ErrorMessage="Only numbers"
Type="Integer" ControlToValidate="YourOnlyNumbersTextBoxID" Operator="DataTypeCheck"/>
对于“电子邮件”验证,您最好使用RegularExpressionValidator
<asp:RegularExpressionValidator runat="server" ErrorMessage="Invalid email"
ControlToValidate="YourEmailTextBoxID" ValidationExpression="[regex here]"/>
答案 3 :(得分:0)
在这两种情况下,您需要在按钮的事件处理程序中定义验证例程(我假设有某种按钮)。
还有其他方法可以实现这一目标,但这是最简单的。
答案 4 :(得分:0)
通常在这种情况下,你可以使用KeyDown事件,如果按下的键不是数字,则取消它。我不会向用户显示警告,他/她会看到只接受号码。
答案 5 :(得分:0)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress);
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsDigit(e.KeyChar);
}
}