因此,对于一个学校项目,我们必须创建一个页面,其中包含一个表单,一堆字段和一个提交的HTML。格式化在外部CSS文件中完成。最后,我们必须在外部javascript文件中为表单编写一些验证。所以最后,页面'由'3个文件组成。
验证的要求之一是,不符合要求的文本字段会出现红色边框。我最初实现了这一点,当时我还在处理原始html文件中脚本标签之间的所有javascript,通过在我的CSS文件中添加一个类:
.error {
border:2px solid red;
}
并将其添加到与javascript相关的元素中:
document.getElementById("naam").className = document.getElementById("naam").className + " error";
我使用以下代码在字段满足要求后还原更改(例如,在任何if-tags之外)
document.getElementById("naam").className = document.getElementById("naam").className.replace(" error", "");
然而,现在,为了满足最后的要求,我将所有的javascript移动到一个单独的文件java.js,并在html中链接到它。
<script src="java.js"></script>
一切正常,除了css改动,我无法弄清楚如何或为什么。
哎呀它正在工作;我只是没有看到它,因为它不适合页面非常正确(接收红色边框的元素都在页面的顶部,而按钮一直在底部)。之前,红色边框将保持文本字段满足要求。现在,它在我设置的所有警报之后重置页面,然后我才有机会看到它们是红色的。所以,我猜真正的问题是页面重置,它清空所有文本字段,重置css。
答案 0 :(得分:0)
您必须确保html文件可以加载外部JavaScript文件。您是否将外部javascript文件放在与html文件相同的文件夹中?如果没有,则必须在src-attribute中输入正确的相对路径。
Btw:你说的是外部的 java 文件,但实际上你正在创建的是一个外部的 javascript 文件。他们不相同!在Web应用程序的上下文中,Java是服务器端技术,而JavaScript在客户端工作。答案 1 :(得分:0)
听起来问题是当您点击提交时页面正在重新加载。当发生这种情况时,您对CSS所做的任何更改都将重置为初始加载状态。因此,您将需要防止在发生错误时发生这种情况。
有关详细信息,请参阅Want html form submit to do nothing。