在VisualStudio的aspx页面上使用javascript进行验证
将电子邮件id输入文本框并应用电子邮件验证,但似乎存在一个错误,即在执行过程中可能未调用整个函数在VisualStudio的aspx页面上使用javascript进行验证,javascript,asp.net,visual-studio,Javascript,Asp.net,Visual Studio,将电子邮件id输入文本框并应用电子邮件验证,但似乎存在一个错误,即在执行过程中可能未调用整个函数 <head runat="server"> <title></title> <script type="text/javascript"> function IsValidUrl() { var emailbox = docume
<head runat="server">
<title></title>
<script type="text/javascript">
function IsValidUrl()
{
var emailbox = document.getElementById('<%=TextBox4.Text %>');<!--textbox4 is used to receive the email entered by the user-->
var email = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if (textbox.value.length > 0)<!--the email field should be non empty-->
{
if (email.test(emailbox.value))
{
return true;
}
else
{
alert("Please enter valid Email");<!--incase of an invalid email-->
return false;
}
}
else
{
alert("please enter text");
return false;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" style="margin-left: 340px" Text="Submit" Width="96px" OnClick="Button1_Click1" OnClientClick="javascript:IsValidUrl();"/>
</form>
</body>``
函数isvalidul()
{
var emailbox=document.getElementById(“”);
var电子邮件=/^([A-Za-z0-9\-\.])+\@([A-Za-z0-9\-\.])+\.([A-Za-z]{2,4})$/;
如果(textbox.value.length>0)
{
if(email.test(emailbox.value))
{
返回true;
}
其他的
{
警报(“请输入有效电子邮件”);
返回false;
}
}
其他的
{
警报(“请输入文本”);
返回false;
}
}
``
您的功能可能工作正常,但即使在验证之后,页面仍会被提交,因此请替换以下内容:
OnClientClick="javascript:IsValidUrl();"
与
编辑
刚刚在JS代码if(textbox.value.length>0)
行应该是if(emailbox.value.length>0)
所以尝试替换它
我在document.getElementById(“”)
中发现了另一个问题,它应该是document.getElementById(“”)
,如果使用母版页,它应该是document.getElementById(“”)
,所以也尝试替换它
希望这会有帮助 javascript的IsValidURL函数似乎存在一些问题,因此请用下面的代码替换它
function IsValidUrl()
{
var emailbox = document.getElementById('<%=TextBox4.ID %>');
var email = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if (emailbox.value.length > 0)
{
if (email.test(emailbox.value))
{
return true;
}
else
{
alert("Please enter valid Email");
return false;
}
}
else
{
alert("please enter text");
return false;
}
}
函数isvalidul()
{
var emailbox=document.getElementById(“”);
var电子邮件=/^([A-Za-z0-9\-\.])+\@([A-Za-z0-9\-\.])+\.([A-Za-z]{2,4})$/;
如果(emailbox.value.length>0)
{
if(email.test(emailbox.value))
{
返回true;
}
其他的
{
警报(“请输入有效电子邮件”);
返回false;
}
}
其他的
{
警报(“请输入文本”);
返回false;
}
}
主要有两个问题
希望这对您有所帮助。@avinor,这意味着您的javascript方法存在一些问题。我想了些什么,看看我更新的答案。先生,似乎函数没有被调用。当在文本框中输入错误的电子邮件时,不会出现警告框,并且该电子邮件最终会存储在数据库(sql server)中。@Avinor,请查看我的更新答案。我检查了你的电子邮件check regex,它工作正常。主席先生,我相信最后第二行的asp按钮标签有问题,因为在运行期间没有调用该函数execution@avinoor,我不能说得很完美,因为这只是您整个页面代码的一部分。如果您发现任何问题,请尝试使用浏览器控制台进行检查。区别在于textbox4.id而不是textbox4.text我已对其进行了编辑,并且主要存在两个我描述的问题。我已进行了上述更改,但它似乎仍然不起作用。请打开浏览器控制台,查看是否显示任何错误。若并没有显示任何错误,那个么可以在IsValidURL函数中设置一个断点,并通过浏览器本身进行调试。
function IsValidUrl()
{
var emailbox = document.getElementById('<%=TextBox4.ID %>');
var email = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if (emailbox.value.length > 0)
{
if (email.test(emailbox.value))
{
return true;
}
else
{
alert("Please enter valid Email");
return false;
}
}
else
{
alert("please enter text");
return false;
}
}