这个IF satemenet有什么问题

时间:2017-03-14 13:20:45

标签: javascript jquery

这句话有什么问题。  数据可能包含以下任何一个值:CheckBox,Radio-Button,Payment-Gateway,Message,Award。 如果数据具有任何值,那么如果阻塞它就不应该执行,但不幸的是它。

    if (data != "CheckBox" || data != "Radio-Button" || data != "Payment-Gateway" || data != "Award" || data != "Message") {

                    DynamiccontrolType.className = "form-control";
                } 
else
{
//nothing should happen;
}

3 个答案:

答案 0 :(得分:2)

如果数据不是" Value1" OR 它不是" Value2"然后

此声明为假是没有价值的。

使用 AND 连接表达式

if (data != "CheckBox" && data != "Radio-Button" && data != "Payment-Gateway" && data != "Award" && data != "Message") {
     DynamiccontrolType.className = "form-control";
} 

修改

如果您想使用 OR ,则必须否定条件(使用==代替!=

if (data == "CheckBox" || data == "Radio-Button" || data == "Payment-Gateway" || data == "Award" || data == "Message") {
     DynamiccontrolType.className = "form-control";
} 

答案 1 :(得分:2)

更优雅的解决方案:

if( ["CheckBox", "Radio-Button", "Payment-Gateway", "Message", "Award"].indexOf(data) == -1){
    // data isn't any of these words
} else {
    // data is one of these words
}

答案 2 :(得分:1)

这是一个OR声明......任何与Checkbox不同的东西或其他单词都会通过......你应该使用&&或==,取决于目标