-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 に何かが含まれていて、rect2 が 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 && (...)

基本的nullundefined, ,''はすべて JavaScript では偽なので、qa2 がこれらの値のいずれかである場合、 and の 2 番目の部分は処理されません。

于 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 に答える