Issue
I want to add CSS attributes to my element, but my current solution loses all previous attributes that had an impact on the element.
function checkNr(id) {
var value = document.getElementById(id).value;
if (parseFloat(value) == NaN) {
document.getElementById(id).setAttribute("style", "border:2px solid red; background-color: rgb(255, 125, 115);");
}
else {
document.getElementById(id).setAttribute("style", "border:default; background-color: rgb(255, 255, 255);");
}
}
Before using this method the element already had the attributes:
float: left;
width: 50px;
Afterwards, the element loses these attributes, leaving only the specific attributes from the JavaScript method. So, I want to add attributes without replacing them.
Solution
Setting the style attribute like that, overwrites the attribute and removes previously set styles.
What you really should do is set the styles directly instead by changing the style property :
function checkNr(id) {
var elem = document.getElementById(id),
value = elem.value;
if (parseFloat(value) == NaN) {
elem.style.border = '2px solid red';
elem.style.backgroundColor = 'rgb(255, 125, 115)';
} else {
elem.style.border = 'none';
elem.style.backgroundColor = 'rgb(255, 255, 255)';
}
}
Answered By - adeneo
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.