这是我正在为传递工作几天的一些代码的片段。我需要知道为什么我的if语句被控制台绕过了。如果没有选中框,它应该给我一个警报。它绕过参数并运行我的其他if和以下的其他声明
<input type="checkbox" class="question" value="Bike" id="qOne" value="ans1"> answer one
<input type="checkbox" class="question" value="Car" id="qTwo" value="ans2"> answer two<br>
<input type="checkbox" class="question" value="Car" id="qThree" value="ans3"> answer three
<input type="checkbox" class="question" value="Car" id="qFour" value="ans4"> answer four<br>
<button type="submit" value="Submit" id="testSubmit" onclick="ansSubmit()"> Submit</button>
</form>
</div>
<script type="text/javascript">
function ansSubmit(){
var ans = document.getElementById('qThree');
var ansCheck = ans.checked;
var check = document.getElementsByClassName('question').checked;
if(check = false){
alert('Please select an answer');//if check is not checked then alert a warning
}else if(ansCheck !== true ){
document.getElementById('testSubmit').style.backgroundColor = "red";//if ans not checked then turn button red
}
else{
document.getElementById('testSubmit').style.backgroundColor = "green";//turn button green
}
}
答案 0 :(得分:3)
=
是赋值运算符。要比较相等性,请使用==
或===
。
答案 1 :(得分:1)
=
获取右侧的值并将其分配给左侧的变量。它还返回已分配的值,因此您的第一个条件检查基本上计算为if (false)
。
==
比较相等但不强制类型相同,而===
则相同。
console.log(false == 0) // true
console.log(false === 0) // false
因此,您应该使用基本为if(check = false){
的{{1}}替换代码中的if (!check) {
。
您可以在此处详细了解JavaScript比较运算符:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators
答案 2 :(得分:0)
通过仅使用=运算符,在if语句的条件内为变量检查赋值(false)。这就是为什么它永远不会传递到if块内。
正确的方法应该是:
if(check === false){
alert('Please select an answer');//if check is not checked then alert a warning
}
答案 3 :(得分:0)
而不是check = false,请尝试检查== false。我猜它没有看到这个表达式作为布尔值,这是问题的根源。
答案 4 :(得分:0)
你的问题在if(check = false)中排成一行,你使用的是赋值运算符而不是比较运算符,而且,我避免使用比较这样的布尔值,我可以建议:
if(!check){
alert('Please select an answer');//if check is not checked then alert a warning
}else if(!ansCheck){
document.getElementById('testSubmit').style.backgroundColor = "red";//if ans not checked then turn button red
}
else{
document.getElementById('testSubmit').style.backgroundColor = "green";//turn button green