function validate() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (username == "") {
document.getElementById("message").innerHTML = "USERNAME CANNOT BE EMPTY";
document.getElementById("username").style.borderColor = "red";
return false;
}
if (password == "") {
document.getElementById("message").innerHTML = "PASSWORD CANNOT BE EMPTY";
document.getElementById("password").style.borderColor = "red";
return false;
}
}
#username:focus {
background-color: yellow;
border-color: green;
}
#password:focus {
background-color: yellow;
border-color: green;
}
#message {
color: red;
}
<form onsubmit=" return validate()">
LOGIN:-
<br>
<input id="username" type="text" name="username" placeholder="USERNAME">
<br>
<input id="password" type="password" name="password" placeholder="PASSWORD">
<br>
<input type="submit" value="SUBMIT">
<p id="message">
</form>
- Wenn ich mich auf die Textfelder konzentriere, ändern sich die Hintergrund- und Rahmenfarbe in Gelb bzw. Grün (über CSS).
- Wenn ich auf Senden klicke, ohne etwas einzugeben, ändert sich die Rahmenfarbe in Rot (durch Javascript).
- Aber wenn ich den Fokus wieder auf das Textfeld bringe, verschwindet die rote Randfarbe nicht, sondern ich bekomme sowohl grüne als auch rote Ränder.
Ich möchte, dass es nur grün ist. Können Sie auch den Grund für dieses Verhalten erklären?