入力が空の場合にテキスト入力の背景色を変更するには、このjavascriptコードで苦労しています。
コードは次のとおりです。
function checkFilled() {
var inputVal = document.getElementById("subEmail").value;
if (inputVal == "") {
inputVal.style.backgroundColor = "yellow";
}
}
最初はテキストボックスが黄色になります。
[〜#〜] demo [〜#〜]-->
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();
注:値をチェックし、許可されていない値に色を設定していたため、エラーが発生していました。上記のようにしてみてください。
bodyタグのonLoadで次のように設定してみてください
document.getElementById("subEmail").style.backgroundColor = "yellow";
その後、その入力フィールドの変更時に値があるかどうかを確認するか、黄色のようにペイントします
function checkFilled() {
var inputVal = document.getElementById("subEmail");
if (inputVal.value == "") {
inputVal.style.backgroundColor = "yellow";
}
}
関数を呼び出さなかったため、他のエラーがあります:
function checkFilled() {
var inputVal = document.getElementById("subEmail");
if (inputVal.value == "") {
inputVal.style.backgroundColor = "yellow";
}
}
checkFilled();
inputVal
を入力の文字列値に設定していましたが、style.backgroundColor
、要素ではなく文字列であるため機能しません。値の代わりに要素オブジェクトを格納するように変数を変更しました。
これを試して:
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>
入力の値にスタイルを追加しないで、次のように使用します
function checkFilled() {
var inputElem = document.getElementById("subEmail");
if (inputElem.value == "") {
inputElem.style.backgroundColor = "yellow";
}
}
Javascriptとcssを使用してスタイルを設定できます。スタイルをcssに追加し、javascriptを使用してclasslistプロパティを使用してスタイルを追加/削除します。これが JSFiddle です。
<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');
}
}
CSSで最初にテキストボックスのスタイルを設定してから、jsでテキストボックスを変更できます。
<input type="text" style="background-color: yellow;" id="subEmail" />
js:
function changeColor() {
document.getElementById("subEmail").style.backgroundColor = "Insert color here"
}