从外部Javascript文件更改某些CSS不再有效?

从外部Javascript文件更改某些CSS不再有效?,javascript,css,html,Javascript,Css,Html,因此,对于一个学校项目,我们必须制作一个页面,其中包含一个表单、一组字段和一个html提交。格式化是在外部CSS文件中完成的。最后,我们必须在外部javascript文件中为表单编写一些验证代码。因此,最终,页面“由”3个文件组成 验证的要求之一是,不符合要求的文本字段将得到红色边框。最初,当我还在处理原始html文件中脚本标记之间的所有javascript时,我通过向CSS文件添加一个类实现了这一点: .error { border:2px solid red; } 并将其添加到与

因此,对于一个学校项目,我们必须制作一个页面,其中包含一个表单、一组字段和一个html提交。格式化是在外部CSS文件中完成的。最后,我们必须在外部javascript文件中为表单编写一些验证代码。因此,最终,页面“由”3个文件组成

验证的要求之一是,不符合要求的文本字段将得到红色边框。最初,当我还在处理原始html文件中脚本标记之间的所有javascript时,我通过向CSS文件添加一个类实现了这一点:

.error {
    border:2px solid red;
} 
并将其添加到与javascript相关的元素中:

document.getElementById("naam").className = document.getElementById("naam").className + " error";
我使用以下代码在字段满足要求后恢复更改(例如,超出任何if标记)

然而,现在为了满足最后一个要求,我将所有javascript移到一个单独的文件java.js中,并在html中链接到它

<script src="java.js"></script>

除了css的改变,一切都正常,我真的不知道怎么做或者为什么



哎呀,它在工作;我只是没有看到它,因为它不适合页面(接收红色边框的元素都在页面顶部,而按钮则一直在底部)。但在此之前,红色边框将一直保留到textfield满足要求为止。现在,在我设置了所有警报之后,在我有机会看到它们是红色之前,它会重置页面。因此,我想真正的问题是页面重置,清空所有文本字段,重新设置css。

您必须确保html文件可以加载外部javascript文件。您是否将外部javascript文件与html文件放在同一文件夹中?如果没有,则必须在src属性中输入正确的相对路径


顺便说一句:你说的是一个外部java文件,但实际上你创建的是一个外部javascript文件。他们不一样!在web应用程序的上下文中,Java是一种服务器端技术,而JavaScript是客户端技术。

问题似乎在于,当您单击“提交”时,页面正在重新加载。当这种情况发生时,javascript对CSS所做的任何更改都将重置为初始加载状态。因此,您需要防止在发生错误的情况下发生这种情况


有关详细信息,请参阅。

能否显示Javascript文件的更完整视图?另外,在HTML中(相对于其他HTML部分)哪里有
标记?这可能会影响加载Javascript的时间,这可能会导致不同的行为。请尝试此文档。getElementById('primaryNav')。setAttribute('class','error');或document.getElementById('primaryNav').setAttribute('class','');
document.getElementById(“naam”)
是否实际解析为元素,还是
未定义?您可能在DOM完成渲染之前执行代码。将代码包装在
DOMContentLoaded
处理程序中,或将
移动到
的底部。脚本标记位于标题中。我可以给你看一个更完整的版本,但恐怕我不知道怎么做。只是将其作为评论发布?将脚本标记移动到正文底部不起作用:'-(我不知道你说的任何其他事情,这只是对js的一个非常肤浅的介绍。如果内存可用,Java也可以运行客户端。是的,外部js文件在同一个文件夹中。所有其他的验证工作,只是css编辑不起作用,因为我将所有内容都移动到了一个单独的文件中。我知道Java和Java脚本不一样,有点懒。^^@j08691当然,Java可以运行客户端,但它不是存储在
.js
文件中。他们在问题中说Java,而他们的意思是JavaScript。@AnthonyGrist-我很清楚这一点。我只是向gstandert指出,说Java只是服务器端是不正确的。@j08691-更新我的答复;)
<script src="java.js"></script>