Почему мой слушатель события фокуса не проверяет / не реагирует на длину значения в поле ввода? - PullRequest
0 голосов
/ 21 сентября 2018

У меня также есть ссылка на кодовую ручку на тот случай, если кто-то захочет сделать там правку: https://codepen.io/Filizof/pen/qMLbKg?editors=1010


Почему мой слушатель событий фокуса не проверяет / не реагирует на длину значения в поле ввода?

document.getElementById("fname").addEventListener("keydown", validateName);
document.getElementById("fname").addEventListener("focus", checkInput1);

function checkInput1() {
    var name = document.getElementById("fname");
    var check = document.getElementById("check1");

    if (name.value == "" || null) {
        check.src = "https://mbtskoudsalg.com/images/image-x-png-4.png";
    }
}
<div id="maindiv">
    <h2 id="signup">Free enrollments end in <img id="myimg" src="https://image.flaticon.com/icons/svg/69/69637.svg"> days!</h2>
    <form id="myform">
        <label class="labels" for="fname">Firstname</label><br/><input class="inputs" type="text" id="fname"><img id="check1" class="imgs" src=""><br/><br/>
        <label class="labels" for="lname">Surname</label><br/><input class="inputs" type="text" id="lname"><img class="imgs" src=""><br/><br/>
        <label class="labels" for="email">Email</label><br/><input class="inputs" type="text" id="email"><img class="imgs" src=""><br/><br/>
        <label class="labels" for="pword">Create password</label><br/><input class="inputs" type="password" id="pword"><img class="imgs" src=""><br/><br/>
        <label class="labels" for="pword2">Confirm password</label><br/><input class="inputs" type="password" id="pword2"><img class="imgs" src=""><br/><br/>
        <button id="mybtn">Enroll</button>
    </form>
</div>

Ответы [ 3 ]

0 голосов
/ 21 сентября 2018

Ваша первая строка кода ломает программу.

Откройте консоль, и вы увидите, что там произошла ошибка.

Итак, я удаляю эту строку, реагирует функция "checkInput1".

// document.getElementById("fname").addEventListener("keydown", validateName);
document.getElementById("fname").addEventListener("focus", checkInput1);

function checkInput1() {
    /**
    * If you don't delete that line of code, you can't into here
    */
    alert('It is work');
    var name = document.getElementById("fname");
    var check = document.getElementById("check1");

    if (name.value == "" || null) {
        check.src = "https://mbtskoudsalg.com/images/image-x-png-4.png";
    }
}
0 голосов
/ 21 сентября 2018

Ваш класс img был настроен на отображение нет.Просто установите его для блокировки после установки src

// document.getElementById("fname").addEventListener("keydown", validateName);
document.getElementById("fname").addEventListener("focus", checkInput1);

function checkInput1() {
  var name = document.getElementById("fname");
  var check = document.getElementById("check1");
  if (name.value == "" || null) {
    check.src = "https://mbtskoudsalg.com/images/image-x-png-4.png";
    check.style.display = "block";
  }
}
#maindiv {
  height: 480px;
  width: 400px;
  background: #C93756;
}

#signup {
  color: white;
  font-family: arial;
  text-align: center;
}

#myimg {
  width: 30px;
  height: 30px;
}

.labels {
  font-family: arial;
  float: left;
  color: #FCC9B9;
}

.inputs {
  height: 25px;
  border-radius: 10px;
  background: #C93756;
  border: 2px solid #FCC9B9;
  font-size: 18px;
  text-align: center;
  color: white;
}

#myform {
  position: relative;
  right: -18px;
}

#mybtn {
  height: 30px;
  width: 80px;
  background: #C93756;
  border: 2px solid #FCC9B9;
  color: #FCC9B9;
}

.imgs {
  height: 20px;
  width: 20px;
  display: none;
}
<div id="maindiv">
  <h2 id="signup">Free enrollments end in <img id="myimg" src="https://image.flaticon.com/icons/svg/69/69637.svg"> days!</h2>
  <form id="myform">
    <label class="labels" for="fname">Firstname</label><br/><input class="inputs" type="text" id="fname"><img id="check1" class="imgs"><br/><br/>
    <label class="labels" for="lname">Surname</label><br/><input class="inputs" type="text" id="lname"><img class="imgs" src=""><br/><br/>
    <label class="labels" for="email">Email</label><br/><input class="inputs" type="text" id="email"><img class="imgs" src=""><br/><br/>
    <label class="labels" for="pword">Create password</label><br/><input class="inputs" type="password" id="pword"><img class="imgs" src=""><br/><br/>
    <label class="labels" for="pword2">Confirm password</label><br/><input class="inputs" type="password" id="pword2"><img class="imgs" src=""><br/><br/>
    <button id="mybtn">Enroll</button>
  </form>
</div>
0 голосов
/ 21 сентября 2018

Обновлено Codepen .

Это происходит потому, что img скрыт, вы должны показать его после того, как прикрепите src, например:

if (name.value == "" || null) {
  console.log( 'attach src' );
  check.src = "https://mbtskoudsalg.com/images/image-x-png-4.png";
  check.style.display = "inline";
}else{
  check.style.display = "none";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...