#javascript #html #input #background-color
#javascript #HTML #ввод #background-color
Вопрос:
моя проблема в том, что я хочу сделать фон моих входных данных красным, когда я оставляю его пустым после нажатия на него.
Вот мой HTML:
<div id="name">
<label>Name<sup></sup></label> <br>
<input id="first" style="font-size:11pt;" type="text" name="name" placeholder="First Name" onChange='emptyField("first")'/>
<input id="last" style="font-size:11pt;" type="text" name="name" placeholder="Last Name" onChange='emptyField("last")'/>
</div>
Вот моя программа на javascript:
function emptyField(x) {
var field = document.getElementById(x);
if(field !== ""){
field.style.backgroundColor = "white";
}
else {
field.style.backgroundColor = "red";
}}
Просто чтобы упомянуть, я только начал изучать HTML, CSS, JS и PHP. Так что, надеюсь, это не слишком сложно для меня, чтобы понять.
Ответ №1:
Вот рабочий пример. Обратите внимание на использование focusout
события, а не change
:
document.querySelectorAll('input[type="text"]').forEach(e => {
e.addEventListener('focusout', setInputBackground)
});
function setInputBackground() {
this.style.backgroundColor = !!this.value ? "white" : "red";
}
<div id="name">
<label>Name<sup></sup></label> <br>
<input id="firstname" style="font-size:11pt;" type="text" name="firstname" placeholder="First Name" />
<input id="lastname" style="font-size:11pt;" type="text" name="lastname" placeholder="Last Name" />
</div>
Ответ №2:
Вы должны использовать событие onblur (), чтобы вывести фокус из поля ввода и проверить значение поля.
HTML:
<div id="name">
<label>Name<sup></sup></label> <br>
<input id="first" style="font-size:11pt;" type="text" name="name" placeholder="First Name" onblur='emptyField("first")'/>
<input id="last" style="font-size:11pt;" type="text" name="name" placeholder="Last Name" onblur='emptyField("last")'/>
</div>
JAVASCRIPT:
Чтобы получить значение поля, вам нужно написать field.value
, а не просто field
,
function emptyField(x) {
var field = document.getElementById(x);
if(field.value !== ""){
field.style.backgroundColor = "white";
}
else {
field.style.backgroundColor = "red";
}}