Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获引用错误:未在HTMLFormElement.onsubmit上定义generateThankyou_Javascript_Html - Fatal编程技术网

Javascript 未捕获引用错误:未在HTMLFormElement.onsubmit上定义generateThankyou

Javascript 未捕获引用错误:未在HTMLFormElement.onsubmit上定义generateThankyou,javascript,html,Javascript,Html,我有一个基本的咨询提交表,可以在我的网站的联系人页面上触发一封电子邮件。我不希望它触发一个新页面或页面刷新,所以我有一个表单将操作定向到一个iframe,这一切都很好,但是我现在尝试使用onSubmit(或点击提交按钮)功能,将contactformdiv设置为display:none和联系人提交至显示:块,但是我收到了未捕获引用错误:GenerateThyYou未在HTMLFormElement上定义。onsubmit错误,我尝试过调整,但没有任何帮助。我有其他的html触发器调用js函数,就

我有一个基本的咨询提交表,可以在我的网站的联系人页面上触发一封电子邮件。我不希望它触发一个新页面或页面刷新,所以我有一个表单将操作定向到一个iframe,这一切都很好,但是我现在尝试使用onSubmit(或点击提交按钮)功能,将
contactform
div设置为
display:none
联系人提交至
显示:块
,但是我收到了
未捕获引用错误:GenerateThyYou未在HTMLFormElement上定义。onsubmit
错误,我尝试过调整,但没有任何帮助。我有其他的html触发器调用js函数,就像这些函数一样,工作得很好,所以我不明白我做错了什么。我曾尝试查找与我类似的问题,但作为一名初学者,我觉得这些问题中的任何一个都不是特别适用于我的场景(或者至少不幸的是,我不知道如何将它们应用于我自己的代码)。我不想重复内容,如果有人能告诉我一个能回答这个问题的问题,我很乐意记下这个

HTML

JS


我不确定问题出在哪里——正如我所说,我有其他内容块使用完全相同的方法正确运行。

在哪里定义了
generateThankyou
?在同一页的
块中?在外部
.js
文件中?如果是这样,该文件是否包含在您的HTML页面中?它位于链接到我的HTML的外部.js文件中,我知道它链接正确,因为其他功能(也在该文件中)正在工作。请确保您的浏览器未提供可能不具有
generateThankyou
功能的缓存副本。如果您使用的是Chrome,则可以使用源代码控制台查看包含的文件内容。如果将函数放置在document.ready块中,则可能会发生这种情况。那么它在外面是看不见的。把它放在文档外面。准备好了,它就会工作。谢谢你们,我终于让它工作了。我感谢你的帮助。
<div id="contactform">
     <iframe name="submission" style="display:none;"></iframe>
          <form action="advancedweb.php" method="post" target="submission" onSubmit="generateThankyou()">
                <h3>
                Name <br><input type="text" name="fname"><br>
                e-mail <br><input type="text" name="email"><br><br>
                Message
                <br><textarea name="comment" id="comment" cols="45" rows="6"></textarea>
                <label for="comment"></label>
                <br>
                <input type="submit" value="Send Message">
                </h3>
          </form>
</div>

<div id="contactsubmitted">
    <h3>Thankyou, <?php echo $_POST["fname"]; ?></h3>
                <br>
                <p>
                    Your message,
                    <br>
                    <?php echo $_POST["comment"]; ?>,
                    has been sent on its way! We'll get back to you as soon as we can!
                </p>
</div>
#contactform {
float: right;
width: 400px;
height: 273px;
}

#contactsubmitted {
display: none;
float: right;
width: 400px;
height: 273px;
}
function messageComplete() {
var completedMessage = document.getElementById("contactform");
completedMessage.style.display = "none";
}

function messageResponse() {
var thankyouMessage = document.getElementById("contactsubmitted");
thankyouMessage.style.display = "block";
}

function generateThankyou() {
messageComplete();
messageResponse();
}