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>
I want it to be green only. Can you also explain the reason for this behavior.
You can turn off the window border color in Windows 11 from the Personalization section in the Settings app. Here is where to find and change the option. Open Windows 11 Settings app. Click on the “ Personalization ” option on the sidebar. Press the “ Colors ” option on the main panel.
Note: If border-color is not set, it inherits the color of the element. The border-color property can have from one to four values (for the top border, right border, bottom border, and the left border). You can learn more about HEX, RGB and HSL values in our CSS Colors chapters.
CSS Border Color. The border-color property is used to set the color of the four borders. The color can be set by: name - specify a color name, like "red". HEX - specify a HEX value, like "#ff0000". RGB - specify a RGB value, like "rgb (255,0,0)". HSL - specify a HSL value, like "hsl (0, 100%, 50%)". transparent.
In the Settings app, go to the “Personalization > Colors” page. Next, scroll down and turn off the “Show accent color on title bars and windows borders” option. As soon as you turn off the option, you will no longer see the window borders.
This is happening because you have updated the element style instead of CSS
class property. Element style has the highest weight for CSS
. Instead add an error class dynamically on error and remove it when the form field is valid.
As per the documentation, the order of style in decreasing order will be.
Here is a working example
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").classList.add("invalidInput");
return false;
} else {
document.getElementById("username").classList.remove("invalidInput")
}
if (password == "") {
document.getElementById("message").innerHTML = "PASSWORD CANNOT BE EMPTY";
document.getElementById("password").classList.add("invalidInput")
return false;
} else {
document.getElementById("password").classList.remove("invalidInput")
}
}
#username:focus {
background-color: yellow;
border-color: green;
}
#password:focus {
background-color: yellow;
border-color: green;
}
.invalidInput {
border-color: red;
}
#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"></p>
</form>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With