如果变量不存在,如何执行语句?

时间:2016-08-25 14:04:47

标签: javascript ajax

我正在进行项目,我必须检查变量是否存在或者不是null,然后我必须比较两个值,如果变量存在并检查差异是否大于10.如果它大于10我有警告消息,如果不是我必须继续我的ajax呼叫。所以我遇到的问题是如何将所有内容放在一个语句中,这样我只能使用一次ajax调用。以下是我的代码示例:

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 
    }
} 

所以这是我当前的功能,问题出现了,因为变量one在特定情况下显示在页面上(我不想详细说明)。在这种情况下,如果我没有var1,我我得到的错误是我的var1是undefined,因为它是在if语句之上定义的。所以我的问题是这个问题的最佳解决方案是什么?我试图再添加一个if语句来检查变量是否存在于我现有的if之上,但在这种情况下我需要两次调用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  
    }
}

我认为不应该有多个Ajax调用,如果有人可以帮助解决这个问题,请告诉我。提前谢谢。

1 个答案:

答案 0 :(得分:2)

只需像这样创建var1:

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 
    }
}