0

コンソール ログは、このボタンの onClick で関数が定義されていないと言い続けます。理由が本当にわかりません。この同じフォーマットを使用する他の 2 つのポップアップがありますが、各ポップアップの各ボタンを押すと、それらはすべて機能未定義と表示されます。このページには、明らかな JavaScript 構文エラーがあるとは記載されていません。

助けてくれてありがとう

HTML

<div class="popup" id="popup-subscribe">
   <div id="close-subscribe" class="close-button"> </div>
   <div class="popup-title">Subscribe</div>
   <form method="post" name="subscribe" action="">
      <span class="label" style="margin-right: 5px">Name: </span><input type="text" placeholder="Name" name="name" /><br>
      <span class="label" style="margin-right: 5px">Email: </span><input type="text" placeholder="Email" name="email_subscribe" /><br>
      <div class="errors" id="subscribe-errors"></div>
      <div onclick="validateSubscribeForm()" class="button-medium">Sign me up!</div>
   </form>
</div>

Javascript

function validateSubscribeForm() {
var emailSubscribe =document.forms["subscribe"]["email_subscribe"].value;
var atpos=emailSubscribe.indexOf("@");
var dotpos=emailSubscribe.lastIndexOf(".");
var name = document.forms["subscribe"]["name"].value;
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=emailSubscribe.length)
  {
  $("#subscribe-errors").html("The email you entered is not valid");
  return false;
  } 
  else if (name == null || name == "") 
  {
  $("#subscribe-errors").html("Please enter a name");
  }else {
  document.subscribe.submit();
  }
}

具体的には、コンソール ログ エラーの状態: Uncaught ReferenceError: validateSubscribeForm is not defined

4

2 に答える 2

2

headHTMLのタグに JavaScript 関数定義を配置する必要があります。

<head>
    <!-- INCLUDE jQuery library first -->
    <script type="text/javascript">
        function validateSubscribeForm() {
            var emailSubscribe = document.forms["subscribe"]["email_subscribe"].value;
            var atpos = emailSubscribe.indexOf("@");
            var dotpos = emailSubscribe.lastIndexOf(".");
            var name = document.forms["subscribe"]["name"].value;
            if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= emailSubscribe.length) {
                $("#subscribe-errors").html("The email you entered is not valid");
                return false;
            } else if (name == null || name == "") {
                $("#subscribe-errors").html("Please enter a name");
            } else {
                document.subscribe.submit();
            }
        }
    </script>
</head>

<body>
    <div class="popup" id="popup-subscribe">
        <div id="close-subscribe" class="close-button"></div>
        <div class="popup-title">Subscribe</div>
        <form method="post" name="subscribe" action=""> <span class="label" style="margin-right: 5px">Name: </span>

            <input type="text" placeholder="Name" name="name" />
            <br /> <span class="label" style="margin-right: 5px">Email: </span>

            <input type="text" placeholder="Email" name="email_subscribe" />
            <br />
            <div class="errors" id="subscribe-errors"></div>
            <div onclick="validateSubscribeForm()" class="button-medium">Sign me up!</div>
        </form>
    </div>
</body>
于 2013-06-24T03:52:19.477 に答える
1

見逃した Jquery はここにあります。Jquery ライブラリを含めます。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
于 2013-06-24T03:50:51.197 に答える