5

この IF 条件の何が問題になっていますか? EEID 値を 123456 として指定すると、この状態になることはありません。しかし、私はそれが来ているのを見ます。誰かが私が間違っていることを教えてもらえますか?

if ((EEID.value.length != 6) || (EEID.value.length != 11)) {
        alert(EEID.value.length); //This shows that the value length = 6
        alert("Your Member ID must be a 6 digit or 11 digit number.");
        EEID.focus();
        return false;
      }
4

2 に答える 2

11

EEID.value.length が 11 ではないため、条件が満たされます。or (||) により、!= 6 または != 11 のいずれかが if 条件を満たすことができます。

または (||) を and (&&) に変更する必要があります。

if ((EEID.value.length != 6) && (EEID.value.length != 11)) {
    alert(EEID.value.length);
    alert("Your Member ID must be a 6 digit or 11 digit number.");
    EEID.focus();
    return false;
}

このように、EEID.value.length が 6 でも 11 でもない場合にのみ if 条件が満たされます。

于 2012-12-19T17:47:38.283 に答える
1

あなたがもともと持っているもの は、両方同時にはできないため(!P || !Q)、常に true を返します。一方が偽の場合、もう一方は真であり、その逆も同様であるため、常に真です。EEID.value.length611

ド・モルガンの法則、またはより正確にはそれを見てください

(!P && !Q) == !(P || Q)

EEID.value.lengthこれはあなたが持っているものと似ていますが、どちら6 でも ない場合に条件が真であると述べています11。(否定は一度だけなので、右側を好むことに注意してください。)したがって、基本的に、次のように条件を書くことができます。

if ((EEID.value.length != 6) && (EEID.value.length != 11)) {

また

if (!(EEID.value.length == 6 || EEID.value.length == 11)) {
于 2012-12-19T17:55:09.947 に答える