在VisualStudio的aspx页面上使用javascript进行验证

在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

将电子邮件id输入文本框并应用电子邮件验证,但似乎存在一个错误,即在执行过程中可能未调用整个函数

  <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;
}
}
主要有两个问题

  • 这里您需要文本框的id,但您正在获取文本框的值
  • textbox.value.length您想检查TextBox4的值,但其变量名是emailbox,而不是textbox。 所以我刚刚纠正了这些

  • 希望这对您有所帮助。

    @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;
                 }
    
    
             }