Javascript document.getElementByID不在IE 8中工作

Javascript document.getElementByID不在IE 8中工作,javascript,forms,internet-explorer-8,getelementbyid,Javascript,Forms,Internet Explorer 8,Getelementbyid,我以前从未这样做过,因此如果我没有很好地描述我的问题或者没有使用所有正确的语法,我向您道歉 我的网站上有一个电子邮件表单。用户可以键入消息,以及他们的姓名和其他一些数据。一旦他们填写完表格,就可以提交到我的电子邮件中,一切都很好。因为表单中有JavaScript,我自动用CSS将其隐藏,然后通过JavaScript使其可见。这样,如果用户关闭了JavaScript,表单就不会出现 而且效果很好。我觉得它也表现得很棒。我在我所有的本地测试浏览器(Chrome 21、FF 14、IE 9、Opera

我以前从未这样做过,因此如果我没有很好地描述我的问题或者没有使用所有正确的语法,我向您道歉

我的网站上有一个电子邮件表单。用户可以键入消息,以及他们的姓名和其他一些数据。一旦他们填写完表格,就可以提交到我的电子邮件中,一切都很好。因为表单中有JavaScript,我自动用CSS将其隐藏,然后通过JavaScript使其可见。这样,如果用户关闭了JavaScript,表单就不会出现

而且效果很好。我觉得它也表现得很棒。我在我所有的本地测试浏览器(Chrome 21、FF 14、IE 9、Opera 12和Safari 5)以及针对IE 8、7和6的Adobe浏览器实验室中检查了它。在他们所有人身上,这看起来都很棒。我甚至在我的安卓手机和我女朋友的黑莓手机上查了一下。看起来不错

直到我用IE 8在我妈妈的电脑上测试它。虽然在AdobeBrowserLab中,表单显示,但在实际测试中,表单不会显示

你可以自己测试一下

问题在于表单id“emailForm”。我的表单具有如下标记:

    <form id="emailForm" method="POST" action="../javascript/email_form.php" onSubmit="return validateForm();">
        <label id="emailSubjectLabel">Email Subject*:</label><input class="form" title="Email Subject" type="text" name="subject" id="emailSubject"><br>
        <label id="nameLabel">Your Name*:</label><input class="form" title="Your Name" type="text" name="name" id="yourName"><br>
        <label id="emailLabel">Your Email:</label><input class="form" title="Your Email Address" type="text" name="email" id="yourEmail"><br>
        <label id="messageLabel">Your Message*:</label>
        <textarea class="form" title="Write Something..." name="message" id="message" cols="40" rows="5"></textarea>
        <input class="button" type="submit" value="Submit">
        <p class="error">* required.</p>
    </form> 
(注意:#javaText是屏幕上的一些文本,除非用户安装了JavaScript,否则这些文本也是隐藏的。它在ie8中也不起作用。为了简单起见,我没有提及它。)

JavaScript如下所示:

    document.getElementById("emailForm").style.display = "block";
    document.getElementById("javaText").style.display = "inline";

    function validateForm() {
    //function that validates the form
    }
我将JavaScript放在页面底部,希望它能有所帮助。我试着在主HTML页面上更改内容的样式,我检查了我母亲的JavaScript,它被启用了。我只是不知道为什么它不起作用

如果有人能告诉我我做错了什么,我会非常感激的。这让我头痛了一个星期了

(是的,我告诉过她IE很烂,她应该使用Chrome,但她不使用Chrome的原因完全是另一回事……)


谢谢你的帮助。我迫不及待地想知道解决办法是什么

IE8没有加载您的
form\u validation.js
文件,这就是为什么它没有在该文件中运行您的初始化代码

您需要将脚本标记上的类型更改为
type=“text/javascript”
或完全删除该类型。您有不正确的
type=“application/javascript”


进一步研究后,请参阅以获取更多讨论。

您在IE8中是否发现任何错误?是的,普遍的事实是某些浏览器很糟糕。你能发布警报(document.getElementById(“emailForm”))和警报(document.getElementById(“emailForm”).style.display)的输出吗?看起来这就是你所有的JS代码吗?代码之前可能有什么东西导致了问题。确保调试页面。你是个天才。非常感谢你@Kentonejong-既然你是新来的,你是否意识到如果你的问题得到了回答,你应该点击答案左边的复选标记,将该答案标记为已接受的答案。这将奖励提供帮助您的答案的人,并为您在Stackoverflow中遵循正确的程序赢得一些声誉积分。
    document.getElementById("emailForm").style.display = "block";
    document.getElementById("javaText").style.display = "inline";

    function validateForm() {
    //function that validates the form
    }