Javascript 如果变量不存在,如何执行语句?
我正在进行一个项目,我必须检查变量是否存在或不为null,然后我必须比较两个值(如果变量存在)并检查差值是否不大于10。如果大于10,我必须提醒消息,如果不是,我必须继续我的ajax调用。所以我的问题是如何将所有内容放在一个语句中,这样我就可以只使用一次ajax调用。下面是我的代码示例:Javascript 如果变量不存在,如何执行语句?,javascript,ajax,Javascript,Ajax,我正在进行一个项目,我必须检查变量是否存在或不为null,然后我必须比较两个值(如果变量存在)并检查差值是否不大于10。如果大于10,我必须提醒消息,如果不是,我必须继续我的ajax调用。所以我的问题是如何将所有内容放在一个语句中,这样我就可以只使用一次ajax调用。下面是我的代码示例: function myFunction(){ var var1 = document.getElementById("myvar1").value; var var2 = document.g
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是未定义的
,这是有意义的,因为它是在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
}
}
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
}
}
我认为不应该有超过一个Ajax调用,如果有人可以帮助解决这个问题,请让我知道。提前感谢。只需像这样创建var1:
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
}
}
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
}
}
只需像这样创建var1:
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
}
}
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
}
}
@Waldemarlce这个很好用!有没有其他方法可以防止这个问题?任何其他方式,如.length>0或“undefined”对我都不起作用。嗯。。。不是真的。在我看来,这是一种理想的“便携”跨浏览器兼容方式,适用于所有浏览器,甚至旧浏览器。@Waldemarlce感谢您的帮助@Waldemarlce这个很好用!有没有其他方法可以防止这个问题?任何其他方式,如.length>0或“undefined”对我都不起作用。嗯。。。不是真的。在我看来,这是一种理想的“便携”跨浏览器兼容方式,适用于所有浏览器,甚至旧浏览器。@Waldemarlce感谢您的帮助!