【问题标题】:validation using javascript in visual studio on an aspx page在 aspx 页面上的 Visual Studio 中使用 javascript 进行验证
【发布时间】:2016-01-31 13:04:01
【问题描述】:

在文本框中输入了电子邮件 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>``

【问题讨论】:

    标签: javascript asp.net visual-studio


    【解决方案1】:

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

    主要有两个问题

    1. 此处您需要 textBox 的 id,但您正在获取 textBox 的值。
    2. textbox.value.length 您要检查 TextBox4 的值,但其变量名称是 emailbox,而不是 textbox。 所以我刚刚更正了这些。

    希望对你有所帮助。

    【讨论】:

    • 区别是 textbox4.id 而不是 textbox4.text
    • 我已经编辑了,我描述的主要有两个问题。
    • 我进行了上述更改,但似乎仍然无法正常工作
    • 能否请您打开浏览器控制台,看看它是否显示任何错误。如果没有显示任何错误,则可以在 IsValidURL 函数中设置断点并通过浏览器本身进行调试。
    【解决方案2】:

    可能您的函数工作正常,但页面在验证后仍被提交,因此请在下面替换:

    OnClientClick="javascript:IsValidUrl();"
    

    OnClientClick="return javascript:IsValidUrl();"
    

    编辑

    刚刚发现您的 JS 代码中的错误 if (textbox.value.length &gt; 0) 行应该是 if (emailbox.value.length &gt; 0) 所以尝试替换它。

    我在document.getElementById('&lt;%=TextBox4.Text %&gt;') 发现的另一个问题应该是document.getElementById('&lt;%=TextBox4.ID %&gt;'),如果使用母版页,它应该是document.getElementById('&lt;%=TextBox4.ClientID %&gt;'),所以也尝试替换它。

    希望这会有所帮助!

    【讨论】:

    • @avinoor,这意味着你的javascript方法有问题。我想通了,看看我更新的答案。
    • 先生,似乎没有调用该函数。在文本框中输入不正确的电子邮件时不会出现警告框,然后电子邮件最终存储在数据库(sql server)中。
    • @avinoor,看看我更新的答案。我检查了您的电子邮件检查正则表达式及其工作正常。 jsfiddle.net/zfeqh6dx
    • 先生,我认为倒数第二行中的 asp 按钮标签存在故障,因为在执行期间未调用该函数
    • @avinoor,我不能说完美,因为这只是您整个页面代码的一部分。如果您发现任何问题,请尝试使用浏览器控制台检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2023-03-17
    • 2013-06-15
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多