【问题标题】:Check if all text inputs are empty, show alert with for if/else statement?检查所有文本输入是否为空,使用 if/else 语句显示警报?
【发布时间】:2017-06-29 17:57:17
【问题描述】:

这里是初学者。我正在尝试使用条件来检查是否已填写文本输入,否则如果为空,则提示警报但它似乎没有做任何事情?我的 JS 布局不好?这是我的jsfiddle。 https://jsfiddle.net/rtomino/4ywq9n3n/2/

谢谢!!

<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];
}

【问题讨论】:

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

标签: javascript for-loop if-statement input


【解决方案1】:

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

查看我的内联 cmets。

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();
}

【讨论】:

    【解决方案2】:

    您正在检查 (inputs === '' || 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];
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多