我的if语句之前的if语句if和else语句没有运行。为什么javascript通过这个语句

时间:2016-06-10 00:39:15

标签: javascript

这是我正在为传递工作几天的一些代码的片段。我需要知道为什么我的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
    }
}

5 个答案:

答案 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