更改某些CSS不再适用于外部Javascript文件



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

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

.error {
    border:2px solid red;
} 

并将其添加到与javascript相关的元素中:

document.getElementById("naam").className = document.getElementById("naam").className + " error";

一旦字段满足要求(例如,在任何 if 标签之外),我使用以下代码还原更改

document.getElementById("naam").className =     document.getElementById("naam").className.replace("     error", "");

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

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

一切都有效,除了 css 更改,我真的不知道如何或为什么。


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

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

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

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

有关详细信息,请参阅希望 html 表单提交不执行任何操作。

最新更新