Javascript 检查所有文本输入是否为空,是否使用for if/else语句显示警报?
我是初学者。我试图使用一个条件来检查文本输入是否已填写,否则如果为空,则提示一个警报,但它似乎没有任何作用?我的JS布局不好吗?这是我的名片 谢谢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
<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。