2016-08-25 9 views
0

変数が存在するかどうかをチェックする必要があるプロジェクトで作業しています。変数が存在する場合は2つの値を比較し、10より大きいかどうかを確認する必要があります。それが私のajax呼び出しに進む必要がない場合は、メッセージを警告する。だから、私が持っている問題は、どのように私は1回だけ私のajax呼び出しを使用することができますようにすべてを1つのステートメントに入れることができることです。ここに私のコードの例です:変数が存在しない場合の文の実行方法は?

function myFunction(){ 
    var var1 = document.getElementById("myvar1").value; 
    var var2 = document.getElementById("mayvar2").value; 
    var var3 = document.getElementById("myvar3").value; 

    if ((var1.length != 0 && var2.length != 0)&&((dateDiff(var1,var2) > 10 && var3 == ''))) { 
     alert('It is greater than 10!'); 
    }else{ 
     //Ajax call 
    } 
} 

だから、これは単に、特定の状況で、ページ上の変数1つのショーのアップは、(私はそのことについて詳細に行きたくない)ので、私の現在の機能は、問題が現れています。その場合、私はvar1を持っていない場合、私はvar1がundefinedであるというエラーが出ます。これは、if文の上で定義されているためです。だから私の質問は、この問題のための最良の解決策は何でしょうか?私は1つ以上を入れてみました、このような何か、変数かどうかを確認します文は私の既存の場合は、上記の存在しますが、その場合には、私は二回私のAJAX呼び出しが必要になる場合:

function myFunction(){ 
    if (document.getElementById("myvar1")) { 
     var var1 = document.getElementById("myvar1").value; 
     var var2 = document.getElementById("mayvar2").value; 
     var var3 = document.getElementById("myvar3").value; 

     if((var1.length != 0 && var2.length != 0)&&((dateDiff(var1,var2) > 10 && var3 == ''))){ 
      alert('It is greater than 10!'); 
     }else{ 
      //Ajax call 
     } 
    }else{ 
     //Ajax call 
    } 
} 

私はより多く存在してはならないということだと思います誰かがこの問題を助けることができるなら、私に知らせてください。前もって感謝します。

答えて

2

ただ、このようVAR1を作成します。これは正常に動作します@Waldemarlce

var var1 = document.getElementById("myvar1") && document.getElementById("myvar1").value || "" 

function myFunction(){ 
    var var1 = document.getElementById("myvar1") && document.getElementById("myvar1").value || ""; 
    var var2 = document.getElementById("mayvar2").value; 
    var var3 = document.getElementById("myvar3").value; 

    if ((var1.length != 0 && var2.length != 0)&&((dateDiff(var1,var2) > 10 && var3 == ''))) { 
     alert('It is greater than 10!'); 
    }else{ 
     //Ajax call 
    } 
} 
+0

!この問題を防ぐ他の方法はありますか? .length> 0または 'undefined'のような他の方法は私にとってはうまくいかなかった。 –

+0

うーん...本当に。 IMOこれは理想的な "ポータブルな"ブラウザ互換の方法で、すべてのブラウザで動作し、古いブラウザでも動作します。 – WaldemarIce

+0

@Waldemarlceあなたの助けてくれてありがとう! –

関連する問題