如果我的电子邮件地址格式不正确,如何让我的按钮不通过?
Posted
技术标签:
【中文标题】如果我的电子邮件地址格式不正确,如何让我的按钮不通过?【英文标题】:how can I make my button not to go through if my email address in not in the correct format? 【发布时间】:2015-09-23 03:19:00 【问题描述】:我的电子邮件地址文本框中有必填字段验证器和正则表达式验证器。如果电子邮件没有值或格式不正确,则会显示这两个验证器。但是,当我单击提交按钮并尝试在电子邮件文本框中输入错误的值(例如我输入数字 2)时,程序仍然会推动提交按钮功能。在电子邮件文本框具有正确格式(abc@yahoo.com)之前,是否有任何技巧或任何参考可以使按钮不继续?感谢您的任何建议。 :)
这是我的电子邮件文本框代码:
<asp:TextBox ID="txtCustomerEmailID" runat="server" Width="231px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ErrorMessage=" Email Address is Required." ForeColor="Red" ControlToValidate="txtCustomerEmailID"
validationgroup="PersonalInfoGroup"
></asp:RequiredFieldValidator>
这是我的提交订单按钮
<asp:Button ID="btnPlaceOrder" runat="server" OnClick ="btnPlaceOrder_Click"
Style = "font-weight:700" Text="PlaceOrder" Width="90px" validationgroup="PersonalInfoGroup" />
另外,我有电子邮件引擎,当我点击按钮时,它将被定向到电子邮件地址。我将显示电子邮件引擎的代码,因为当它使用错误的电子邮件地址推送时,错误会出现在这里。
using (MailMessage mailMessage = new MailMessage())
mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["Username"]);
mailMessage.Subject = subject;
mailMessage.Body = body;
mailMessage.IsBodyhtml = true;
mailMessage.To.Add(new MailAddress(recipientEmail));
SmtpClient smtp = new SmtpClient();
smtp.Host = ConfigurationManager.AppSettings["Host"];
smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"];
NetworkCred.Password = ConfigurationManager.AppSettings["Password"];
smtp.UseDefaultCredentials = false;
smtp.Credentials = NetworkCred;
smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]);
smtp.Send(mailMessage);
最后,错误: 指定的字符串不是电子邮件地址所需的格式。
mailMessage.To.Add(new MailAddress(recipientEmail));
【问题讨论】:
您在这里遇到的问题不止一个吗? 【参考方案1】:您可以通过这种方式重定向您的方法,
HTML
<asp:TextBox ID="txtCustomerEmailID" runat="server" Width="231px"></asp:TextBox>
<asp:RegularExpressionValidator ID="regexEmailValid" runat="server" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtCustomerEmailID" ErrorMessage="Invalid Email Format"></asp:RegularExpressionValidator>
代码隐藏:
if(txtCustomerEmailID!="")
//Your Stuffs
else
// Do some script to give alert or use label to make display the text as you wish
【讨论】:
【参考方案2】:<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
还需要RegularExpressionValidator
【讨论】:
【参考方案3】:您必须更改文本框和按钮的验证组
<asp:TextBox ID="txtCustomerEmailID" runat="server" Width="231px" validationgroup="PersonalInfoGroup" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ErrorMessage=" Email Address is Required." ForeColor="Red" ControlToValidate="txtCustomerEmailID"
validationgroup="PersonalInfoGroup"
>
<asp:Button ID="btnPlaceOrder" runat="server" OnClick ="btnPlaceOrder_Click"
Style = "font-weight:700" Text="PlaceOrder" Width="90px" validationgroup="PersonalInfoGroup" />
【讨论】:
以上是关于如果我的电子邮件地址格式不正确,如何让我的按钮不通过?的主要内容,如果未能解决你的问题,请参考以下文章