为什么我的焦点事件侦听器不检查/反应输入字段中的值的长度?

时间:2018-09-21 08:41:19

标签: javascript html dom

如果有人要在此处进行编辑,我也有一个Codepen链接: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 :(得分:0)

Updated 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";
}

答案 1 :(得分:0)

您的第一行代码正在破坏程序。

打开控制台,然后您会发现那里是一个错误。

因此,我删除该行,“ 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";
    }
}

答案 2 :(得分:0)

您的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>