控制台日志一直显示该按钮的单击时未定义该函数。我实在是查不出原因。我有另外 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
最佳答案
您需要将 JavaScript 函数定义放在 HTML 的 head
标记中:
<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>
关于javascript - 错误提示函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17267744/