javascript:检查布尔值

时间:2011-04-27 07:16:27

标签: javascript

我有一个布尔值设置为表单中的隐藏变量,我有以下javascript。

         $().ready(function() {

             var flag =  $('#popUpFlag').val();

             alert("flag = "+flag);

             if(flag){
                alert("flag is true");
             }else{
                alert("flag is false");
             }
        })

这些是警报的输出。

         flag =
         flag is false


         flag = false
         flag is false


         flag = true
         flag is false

我的关注显然是第三项产出。当标志为真时,为什么打印“flag is false”,而不是“flag is true”。我在IE8和FF 4中进行了测试

欢迎提出建议。

3 个答案:

答案 0 :(得分:16)

不,您在隐藏字段中没有布尔值。字段中的值始终为字符串。

当您使用字符串值时,就好像它是一个布尔值,您会得到意外的结果。如果值为false0""null,则条件为false,但字符串"false"不是,因此评估为{{1 }}

如果你想要一个布尔值,你必须解析字符串。一种简单的方法是简单地检查字符串是否具有特定值:

true

答案 1 :(得分:6)

flag是一个字符串,所以请改为:

if (flag === "true") {
  //true
}
else if (flag === "false") {
  //false
}

答案 2 :(得分:0)

嗯......我怀疑你使用的值是一个字符串,所以你在警报中正确看到了值,但是当它试图像布尔值一样看它时。

How can I convert a string to boolean in JavaScript?

尝试转换为布尔值并查看它是否仍然提供相同的问题