我需要在我的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,则仍会显示错误消息。
修改
我找到了如何让它发挥作用。而不是把||比较之间我把&&而且效果很好。
答案 0 :(得分:2)
要获取文本输入的值,请执行类似
的操作 var q2Value = q2.value;
对于条件,||
是或不是or
,每次进行比较时都需要2个值/变量
(correct2 !== 'True ) || (correct2 !== 'true')...
你可以看到我将比较包括在括号中,因此它非常清楚应该与什么进行比较,即使它不是绝对必要的。
由于在比较其他条件之前需要q2是正确的,因此可以使用称为短路的漂亮功能。基本上,&&
只有在第一次比较真实时才会进行,所以你会这样做
(qa2 !== '') && (the rest)
请注意,如果用户根本没有输入值,那么当您获得文本字段的值时,它将是undefined
(我认为),而不是''
'。所以你应该真的做到
qa2 && (...)
基本上null
,undefined
和''
在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.")
};