そのため、学校のプロジェクトでは、フォーム、多数のフィールド、HTML での送信を含むページを作成する必要がありました。書式設定は、外部 CSS ファイルで行われました。最後に、フォームの検証を外部の JavaScript ファイルにコーディングする必要がありました。最終的に、ページは 3 つのファイルで構成されていました。
検証の要件の 1 つは、要件を満たしていないテキスト フィールドに赤い境界線を表示することでした。CSSファイルにクラスを追加することにより、元のhtmlファイルのスクリプトタグ間のすべてのjavascriptをまだ使用していたときに、最初にこれを達成しました。
.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 の変更以外はすべて機能しますが、その方法や理由がわかりません。
おっと、それは機能しています。ページにぴったり合っていないため、表示されませんでした (赤い境界線を受け取る要素はすべてページの上部にありますが、ボタンはページの一番下にあります)。ただし、以前は、テキストフィールドが要件を満たすまで赤い境界線が表示されていました。今、私が設定したすべてのアラートの後、それらが赤くなる前に、ページがリセットされます。したがって、本当の問題は、ページがリセットされ、すべてのテキストフィールドが空になり、css がリセットされることだと思います。