单击按钮时,应验证id值,如果值不是NA,则应加载页面,否则应抛出警报。
<a href="#" id="check" class="button" onclick="id_check()">View ID</a><br><br>
function id_check() {
if (id != "NA" || (id != null)) {
// load diff page
} else {
alert("Something Wrong");
}
}
但是或(||)的if条件没有按预期工作。当我刚刚比较id!=&#34; NA&#34;时它工作正常。我在这里缺少什么?
答案 0 :(得分:4)
这里要理解的重要一点是||
运算符会使结果短路。这意味着,如果第一个表达式的计算结果是真实的,那么该值将立即返回。第二个表达式根本不会被评估。
在您的情况下,id != "NA" || id != null
,如果数据为null
,则id != "NA"
检查将返回true
。所以,第二部分根本没有检查过。
由于您希望输入数据不是NA
和null
,因此您可以在此使用&&
运算符,例如id != "NA" && id != null
注意: if != null
如果false
为id
,则会返回undefined
,因为!=
会强制删除表达式。因此,最好使用严格的相等比较运算符。因此,条件将变为if id !== "NA" && id !== null
答案 1 :(得分:3)
您的条件应为id != "NA" && id != null
,因为您希望ID与NA
和不同null
。
答案 2 :(得分:0)
请使用以下代码,以便成功显示&#39;如果id不为空,则将文本作为消息。
<a href="#" id="check" class="button" onclick="id_check(this.id)">View ID</a>
<script>
function id_check (id)
{
//if block will execute if element id value isn't empty or Null
if ( id )
{
alert("Id isn't empty");
}else
{
alert ("Id is empty");
}
}
</script>
我们需要将控制的id传递给function.After传递id后我们可以根据我们的要求进行验证。
this.id - 它会将元素的id作为参数返回到&#39; id_check&#39;功能
请参阅以下链接以验证答案 - http://jsfiddle.net/pdhsob8s/4/