Je rencontre des difficultés avec ce code javascript pour changer la couleur de fond d'une entrée de texte si l'entrée est vide.
Voici le code:
function checkFilled() {
var inputVal = document.getElementById("subEmail").value;
if (inputVal == "") {
inputVal.style.backgroundColor = "yellow";
}
}
Exemple: http://jsfiddle.net/2Xgfr/
Je m'attendrais à ce que la zone de texte apparaisse en jaune au début.
DÉMO-->
http://jsfiddle.net/2Xgfr/829/
HTML
<input type="text" id="subEmail" onchange="checkFilled();">
JavaScript
function checkFilled() {
var inputVal = document.getElementById("subEmail");
if (inputVal.value == "") {
inputVal.style.backgroundColor = "yellow";
}
else{
inputVal.style.backgroundColor = "";
}
}
checkFilled();
Remarque: Vous vérifiiez la valeur et définissiez la couleur sur une valeur non autorisée. C'est pourquoi il vous renvoyait des erreurs. essayez comme ci-dessus.
essayez onLoad sur la balise body en le configurant comme
document.getElementById("subEmail").style.backgroundColor = "yellow";
et après que lors du changement de ce champ d'entrée, vérifiez s'il y a une valeur, ou peignez-le en jaune comme
function checkFilled() {
var inputVal = document.getElementById("subEmail");
if (inputVal.value == "") {
inputVal.style.backgroundColor = "yellow";
}
}
Vous n'avez pas appelé la fonction et vous avez d'autres erreurs, devrait être:
function checkFilled() {
var inputVal = document.getElementById("subEmail");
if (inputVal.value == "") {
inputVal.style.backgroundColor = "yellow";
}
}
checkFilled();
Vous définissiez inputVal
à la valeur de chaîne de l'entrée, mais vous avez ensuite tenté de définir style.backgroundColor
, ce qui ne fonctionnera pas car il s'agit d'une chaîne, pas de l'élément. J'ai changé votre variable pour stocker l'objet élément au lieu de sa valeur.
Essaye ça:
function checkFilled() {
var inputVal = document.getElementById("subEmail");
if (inputVal == "") {
inputVal.style.backgroundColor = "yellow";
}
}
<! DOCTYPE html>
<html>
<head></head>
<body>
<input type="text" id="subEmail">
<script type="text/javascript">
window.onload = function(){
var subEmail = document.getElementById("subEmail");
subEmail.onchange = function(){
if(subEmail.value == "")
{
subEmail.style.backgroundColor = "red";
}
else
{
subEmail.style.backgroundColor = "yellow";
}
};
};
</script>
</body>
N'ajoutez pas de styles à la valeur d'entrée, utilisez donc
function checkFilled() {
var inputElem = document.getElementById("subEmail");
if (inputElem.value == "") {
inputElem.style.backgroundColor = "yellow";
}
}
Vous pouvez le styler en utilisant javascript et css. Ajoutez le style à css et utilisez javascript pour ajouter/supprimer du style en utilisant la propriété classlist. Voici un JSFiddle for it.
<div class="div-image-text">
<input class="input-image-url" type="text" placeholder="Add text" name="input-image">
<input type="button" onclick="addRemoteImage(event);" value="Submit">
</div>
<div class="no-image-url-error" name="input-image-error">Textbox empty</div>
addRemoteImage = function(event) {
var textbox = document.querySelector("input[name='input-image']"),
imageUrl = textbox.value,
errorDiv = document.querySelector("div[name='input-image-error']");
if (imageUrl == "") {
errorDiv.style.display = "block";
textbox.classList.add('text-error');
setTimeout(function() {
errorDiv.style.removeProperty('display');
textbox.classList.remove('text-error');
}, 3000);
} else {
textbox.classList.remove('text-error');
}
}