Javascript 无法在超链接单击时显示警报

Javascript 无法在超链接单击时显示警报,javascript,Javascript,我有一个锚定链接,在它点击时,我调用了一个JavaScript函数,并在其中使用if-else。如果条件为true,则会转到链接。但如果条件为false,则会向用户显示警报。但我的警报不起作用 <script type="text/javascript" language="javascript"> function getVal(fid) { if (fid != null || fid != undefined || fid !=

我有一个锚定链接,在它点击时,我调用了一个JavaScript函数,并在其中使用if-else。如果条件为true,则会转到链接。但如果条件为false,则会向用户显示警报。但我的警报不起作用

 <script type="text/javascript" language="javascript">

         function getVal(fid) {

             if (fid != null || fid != undefined || fid != "")
                 window.location = "http://yatra.eresolute.com/Airline/AirPrice.aspx?fid=" + fid.toString();
             else
                 alert("Flight has no ID!");

         }

    </script>

函数getVal(fid){
if(fid!=null | | fid!=未定义| | fid!=“”)
window.location=”http://yatra.eresolute.com/Airline/AirPrice.aspx?fid=“+fid.toString();
其他的
警报(“航班没有ID!”);
}
这是您的解决方案

这是你的解决方案

你在误导我

if (fid != null || fid != undefined || fid != "")
您应该使用
&&
而不是
|

为什么?

因为
|
表示或和,
fid
在任何情况下都不能同时为null和未定义以及空字符串。在你的代码中,你是这么说的

如果它不是null、未定义或空字符串,则重定向

您的支票必须在这3次验证中为阳性。 因此,有两种选择:

if (fid != null && fid != undefined && fid != "") {window.location...}else{alert(...)}

你在误导我

if (fid != null || fid != undefined || fid != "")
您应该使用
&&
而不是
|

为什么?

因为
|
表示或和,
fid
在任何情况下都不能同时为null和未定义以及空字符串。在你的代码中,你是这么说的

如果它不是null、未定义或空字符串,则重定向

您的支票必须在这3次验证中为阳性。 因此,有两种选择:

if (fid != null && fid != undefined && fid != "") {window.location...}else{alert(...)}


您应该将您的条件的
未定义
更改为

if (fid != null && typeof(fid) != 'undefined' && fid != "")

如果条件出现,还应尝试在之前发出警报(fid)。

您应将条件的未定义更改为

if (fid != null && typeof(fid) != 'undefined' && fid != "")

if
条件之前也尝试
alert(fid)

将您的HTML标记添加到此问题。将您的HTML标记添加到此问题。如果fid有值,我需要将其重定向到另一个页面,否则我需要显示alert。然后,而不是
alert('Flight have ID'))
你放了重定向语句。如果fid有值,我需要将其重定向到另一个页面,否则我需要显示警报。然后,代替
警报(“航班有ID”)
你放了重定向语句。啊,我忽略了这一点。我认为情况看起来很糟糕,过于复杂,但是。。没有看到错误。@user2164964:你为什么不说它是重定向,而不是显示警报?啊,我忽略了这一点。我认为情况看起来很糟糕,过于复杂,但是。。没有看到错误。@user2164964:为什么不说是重定向,而不是显示警报?