-1

他にチェックする場合は、いくつかの簡単なものを打ちました

var IsCompanyContacttitleUpdate = false;
var ContactStatus = -1;

if ((IsCompanyContacttitleUpdate == false) && (ContactStatus == 2 || 3 || 4)) 
{
    alert('inside if');
}
else if (IsCompanyContacttitleUpdate == false && ContactStatus == 2) {
    alert('inside else if');
}
else {
    alert('yup yup else');
}

この場合、else部分を実行することを期待していました。しかし、解雇されていません。これを解決するのを手伝ってください...事前に感謝しますフィドル http://jsfiddle.net/vuHYn/1/をご覧ください

4

4 に答える 4

6

これContactStatus == 2 || 3 || 4は無効です (無効というのは正しい言葉ではないかもしれません。より正確に言うと、あなたが思っていることをしていないとしましょう)

あなたのシナリオでは、使用する必要があります

ContactStatus == 2 || ContactStatus == 3 || ContactStatus == 4

あなたのコードはに翻訳される可能性があります

ContactStatus == 2 || true || true

そして、これは常に真実です。

于 2013-09-20T12:38:10.017 に答える
0

これは機能しますか?if 条件を (ContactStatus == 2 || 3 || 4) から ((ContactStatus == 2) || (ContactStatus == 3) || (ContactStatus == 4)) に変更しました。

(ContactStatus == 2 || 3 || 4) は (ContactStatus == 2) を評価します。true であるため、条件として 3 を評価します。3 は 0 (ゼロ) とは異なるため、結果は true になります。OR 全体が true と評価されます。最終的な結果は、if 条件全体が真であり、「then」分岐が選択されることです。

var IsCompanyContacttitleUpdate = false;
var ContactStatus = 6;

if ((IsCompanyContacttitleUpdate == false) && ((ContactStatus == 2) || (ContactStatus == 3) || (ContactStatus == 4))) 
{
    alert('inside if')
} else if (IsCompanyContacttitleUpdate == false && ContactStatus == 2) {
    alert('inside else if')
} else {
    alert('yup yup else');

}
于 2013-09-20T12:40:18.103 に答える
0

問題は (ContactStatus == 2 || 3 || 4)

正しい方法 (ContactStatus == 2 || ContactStatus == 3 || ContactStatus == 4)

于 2013-09-20T12:39:19.377 に答える
0

(ContactStatus == 2 || 3 || 4))

これがあなたの問題です。ContactStatus2 に等しい場合、それは true、または true または trueと言っています。

False = 0、True は 0 以外です。

次のように書き直す必要があります。

(ContactStatus == 2 || ContactStatus == 3 || ContactStatus == 4))

その一点を変えればうまくいくはずです

于 2013-09-20T12:39:38.043 に答える