我正在进行项目,我必须检查变量是否存在或者不是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调用,如果有人可以帮助解决这个问题,请告诉我。提前谢谢。
答案 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
}
}