JavaScript比较问题

时间:2013-03-23 19:20:56

标签: javascript comparison

我需要在我的javascript中进行此比较。

if ((q2 != '' && correct2 != 'True') || (q2 != '' && correct2 != 'true') || (q2 != '' && correct2 != 'false') || (q2 != '' && correct2 != 'False'))
{
    alert("You must enter true or false.");
}    

q2和correct2是文本框,如果q2中包含某些内容且correct2不等于true,则为True,false或False,然后我想弹出消息框。我的代码不起作用。如果我在空白处输入true或false,则仍会显示错误消息。

修改

我找到了如何让它发挥作用。而不是把||比较之间我把&&而且效果很好。

3 个答案:

答案 0 :(得分:2)

要获取文本输入的值,请执行类似

的操作

var q2Value = q2.value;

对于条件,||是或不是or,每次进行比较时都需要2个值/变量

(correct2 !== 'True ) || (correct2 !== 'true')...

你可以看到我将比较包括在括号中,因此它非常清楚应该与什么进行比较,即使它不是绝对必要的。

由于在比较其他条件之前需要q2是正确的,因此可以使用称为短路的漂亮功能。基本上,&&只有在第一次比较真实时才会进行,所以你会这样做

(qa2 !== '') && (the rest)

请注意,如果用户根本没有输入值,那么当您获得文本字段的值时,它将是undefined(我认为),而不是'''。所以你应该真的做到

qa2 && (...)

基本上nullundefined''在javascript中都是假的,所以如果qa2是这些值中的任何一个,那么the的第二部分将不会被处理。< / p>

答案 1 :(得分:0)

这应该有用。

if ((q2 != '' && correct2 != 'True') || (q2 != '' && correct2 != 'true') || (q2 != '' && correct2 != 'false') || (q2 != '' && correct2 != 'False'))
{
    alert("You must enter true or false.");
}

答案 2 :(得分:-1)

试试这个

if(q2 !== '' && !(correct2 == 'true') && !(correct2 == 'True') && !(correct2 == 'False') && !(correct2 == 'false'))
{
    alert("You must enter true or false.")
};