没有显示警报

时间:2017-04-09 18:14:26

标签: javascript jquery

我遵循教程,但我的代码无效。

我无法理解没有显示有效/无效的警告 我想使用正则表达式并通过它验证电子邮件,但这没有完成。



<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
  <script type="text/javascript">
    $(document).ready(function () {
      $("#btnValidate").click(function () {
        var textEmail =$("#txtemail").val();
        if ($.trim(textEmail) == 0) {
          alert("please enter the email");
          return false;
        }
        if (validateEmail(textEmail)) {
          alert("Validate");
          return true;
        }
        else {
          alert("invalid");
          return false;
        }
      });
    });
    
    function validateEmail(sEmail){
      var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3}){\]?)$/;
      if (filter.test(sEmail)){
        return true;
      }
      else{
        return false;
      }
    }
  </script>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:TextBox ID="txtemail" runat="server"></asp:TextBox>
    <asp:Button ID="btnValidate" runat="server" Text="Validate" />
  </div>
  </form>
</body>
</html>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

  • 你错过了jquery的标签(参见其他评论者)
  • 你的正则表达式有问题。

感觉你对“给我一些有用的东西”感兴趣,所以我会饶有关于体面可维护代码的讨论;)。这是可行的,但我真的,真的建议花时间学习一些JavaScript(它确实不是那么难),而不是将代码片段复制在一起。

我不得不替换你的asp表单元素,不管怎么说这个例子不会运行,但是如果你只是替换javascript它应该不是问题。

function validateEmail (sEmail) {
    var filter = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    
    return filter.test(sEmail);
}

$(document).ready(function () {
    $("#btnValidate").click(function (event) {
        var textEmail = $("#txtemail").val();

        if ($.trim(textEmail).length === 0) {
            alert("please enter the email");
            return false;
        } else if (validateEmail(textEmail)) {
            alert("Validate");
            return true;
        } else {
            alert("invalid");
            return false;
        }

    });
});
<html>
  <head></head>
  <body>
    <form id="form1">
      <div>
        <input id="txtemail">
        <button id="btnValidate">Validate</button>
      </div>
    </form>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js" type="text/javascript"></script>
  </body>
<html>

答案 1 :(得分:0)

您忘了导入jQuery库,方法是在脚本之前添加带有head的URL的脚本标记。

为此,请下载jQuery并自行托管或添加以下内容之一:

Google jQuery CDN:

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js" type="text/javascript"></script>

Microsoft jQuery CDN:

<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.0.min.js" type="text/javascript"></script>


W3Schools tutorial

答案 2 :(得分:0)

<script>

之前在您的网页标题中添加此内容
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

这将添加版本3.2.1的jQuery库。这是jQuery的最新版本。