Javascript 检查所有文本输入是否为空,是否使用for if/else语句显示警报?

Javascript 检查所有文本输入是否为空,是否使用for if/else语句显示警报?,javascript,for-loop,if-statement,input,Javascript,For Loop,If Statement,Input,我是初学者。我试图使用一个条件来检查文本输入是否已填写,否则如果为空,则提示一个警报,但它似乎没有任何作用?我的JS布局不好吗?这是我的名片 谢谢 <div> <label for="cand1">Candidate 1</label> <input class="candidate" id="cand1" placeholder="Candidate"> </div> <div> <labe

我是初学者。我试图使用一个条件来检查文本输入是否已填写,否则如果为空,则提示一个警报,但它似乎没有任何作用?我的JS布局不好吗?这是我的名片

谢谢

<div>
    <label for="cand1">Candidate 1</label>
    <input class="candidate" id="cand1" placeholder="Candidate">
</div>

<div>
    <label for="cand2">Candidate 2</label>
    <input class="candidate" id="cand2" placeholder="Candidate">
</div>

<div>
    <label for="cand3">Candidate 3</label>
    <input class="candidate" id="cand3" placeholder="Candidate">
</div>
JS

function candidateNames() {
   var inputs = document.getElementsByTagName("input");
   var result = [];
 for ( var i = 0; i < inputs.length; i += 1 ) {
   result[i] = inputs[i].value;

  if (inputs === '' || null || 0) {
      alert('Need to fill inputs');
  }  
}
  document.getElementById("candidateName1").innerHTML = result[0];
  document.getElementById("candidateName2").innerHTML = result[1];
  document.getElementById("candidateName3").innerHTML = result[2];
}

您正在检查输入数组是否为空,而不是当前输入的值是否为空

请参阅我的内联注释

function candidateNames() {
  var inputs = document.getElementsByTagName("input");
  var result = [];
  for ( var i = 0; i < inputs.length; i += 1 ) {
      result[i] = inputs[i].value;

      if (inputs[i].value == '') { // check if value is empty
          alert('Need to fill inputs');
          return; // stop the function
      }

}
    document.getElementById("candidateName1").innerHTML = result[0];
    document.getElementById("candidateName2").innerHTML = result[1];
    document.getElementById("candidateName3").innerHTML = result[2];
}

//Event listener to calculate button to call all above functions
document.getElementById("btn").addEventListener("click", calculateVotes, false);

function calculateVotes() {
  candidateNames();
}

您正在检查输入===| | null | | 0,这是错误的,因为输入是一个数组,您需要执行以下操作:

function candidateNames() {console.log('here');
  var inputs = document.getElementsByTagName("input");
  var result = [];
  for ( var i = 0; i < inputs.length; i += 1 ) {
      result[i] = inputs[i].value;

      if (results[i] === '' || null || 0) {
          alert('Need to fill inputs');
      }

}
    document.getElementById("candidateName1").innerHTML = result[0];
    document.getElementById("candidateName2").innerHTML = result[1];
    document.getElementById("candidateName3").innerHTML = result[2];
}

您正在测试输入是否==| | null | |等。。。。您确定检查的变量正确吗?输入是一个数组。。它可能不是空的。你想看看输入[i].value===| | | null | | |等等吗?除了@Aaron提到的以外,你不能将一个变量与那样的多个值进行比较。您需要将某个对象与进行比较,然后将同一对象与null进行比较,将同一对象与0进行比较。但是,请注意,输入值始终是字符串,因此永远不会为null或0,但可能为0。