-3

我需要在我的 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,错误消息仍然会显示。

编辑

我已经找到了如何让它工作。而不是放|| 在我放 && 的比较之间,它工作得很好。

4

3 回答 3

2

要获取文本输入的值,请执行以下操作

var q2Value = q2.value;

对于条件,||is or, not or,并且每次进行比较时都需要 2 个值/变量

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

你可以看到我把比较用括号括起来了,所以它非常清楚应该比较什么,即使它不是绝对必要的。

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

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

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

qa2 && (...)

基本上null, undefined, 和''在 javascript 中都是虚假的,所以如果 qa2 是这些值中的任何一个,则不会处理 and 的第二部分。

于 2013-03-23T19:22:45.470 回答
0

这应该有效。

if ((q2 != '' && correct2 != 'True') || (q2 != '' && correct2 != 'true') || (q2 != '' && correct2 != 'false') || (q2 != '' && correct2 != 'False'))
{
    alert("You must enter true or false.");
}
于 2013-03-23T19:25:36.980 回答
-1

尝试这个

if(q2 !== '' && !(correct2 == 'true') && !(correct2 == 'True') && !(correct2 == 'False') && !(correct2 == 'false'))
{
    alert("You must enter true or false.")
};
于 2013-03-23T19:23:03.660 回答