我在该文本框上有一个文本框,我正在使用必填字段验证。 如果文本框为空,那么我想在文本框中显示“请输入一些文本”,如果文本框中有东西,那么我想检查文本框文本是否是有效的电子邮件ID,如果没有,那么我想显示在文本框内“请输入有效的电子邮件ID”
答案 0 :(得分:2)
您可以使用jQuery执行以下操作:
<script type="text/javascript">
function CheckEmail()
{
var $email = $("#<%=EmailText.ClientID %>");
if ($email.val().length) {
if (!IsEmailValid($email.val()))
$email.val("Please enter a valid email address");
}
else {
$email.val("Please enter some text.");
}
}
function IsEmailValid(inputvalue)
{
var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
if(pattern.test(inputvalue)) {
return true;
}
else {
return false;
}
}
</script>
<asp:TextBox ID="EmailText" Text="Please enter some text" runat="server" />
<asp:Button ID="SubmitButton" runat="server" OnClientClick="CheckEmail()" />
或者您可以使用RequiredFieldValidator和RegularExpressionValidator进行.NET验证。
由于海报声明客户端脚本不能用于验证,我已经添加了服务器端验证:
protected void SubmitButton_Click(object sender, EventArgs e)
{
if (IsFormValid())
{
//Do something...
}
}
private bool IsFormValid()
{
bool isValid = true;
if (String.IsNullOrEmpty(EmailText.Text))
{
EmailText.Text = "Please enter an email address";
isValid = false;
}
else
{
if (!Regex.IsMatch(EmailAddress.Text, @"/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/"))
{
EmailText.Text = "Email address not valid";
isValid = false;
}
}
return isValid;
}
答案 1 :(得分:0)
您可以使用占位符
<input type="text" placeholder="Please enter some text">
我相信你确实需要一个jQuery插件才能在Internet Explorer中工作。
但我不明白为什么它应该改为'请输入有效的电子邮件ID'
您可以在开始时说“请输入有效的电子邮件ID”并添加验证器脚本,以便人们无法输入无效的电子邮件。
function validateForm()
{
var x=document.forms["MyForm"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Not a valid email id");
return false;
}
}
答案 2 :(得分:0)
您可以使用reqiredfieldvalidator来检查文本框是否为空
<asp:RequiredFieldValidator ID="RequiredFieldValidator" runat="server" ControlToValidate="yourTextBox" Text="This field is required" />
并检查电子邮件验证,您可以使用RegularExpressionValidator验证电子邮件的输入
<asp:RegularExpressionValidator runat="server" ID="emailValidator" ControlToValidate="emailTextBox" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Text="please enter a valid email address" />
答案 3 :(得分:0)
请使用此示例:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="TextBox1" runat="server" ErrorMessage="Please enter some text"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="TextBox1"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
runat="server" ErrorMessage="Please enter valid emailid"></asp:RegularExpressionValidator>
RequiredFieldValidator验证空文本框,然后RegularExpressionValidator与ValidationExpression匹配,在这种情况下它是emailid。
答案 4 :(得分:0)
对于空文本验证,请使用RequiredFieldValidator默认功能:
<asp:RequiredFieldValidator runat="server" ID="requiredValidatorId" ControlToValidate="textBoxId" ErrorMessage="Please enter some text" />
对于输入格式或域验证,请使用如下服务器端逻辑:
if (!IsValidEmail(email))
{
zoneRequiredValidatorId.Text = "Please enter valid email id";
zoneRequiredValidatorId.IsValid = false;
}
else
if (...)
{
zoneRequiredValidatorId.Text = "Validation error X";
zoneRequiredValidatorId.IsValid = false;
}
...
请注意,我们在此处将IsValid属性设置为false。