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和FF4中测试了它

欢迎提出建议.

解决方法

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

当您使用字符串值,就像它是一个布尔值,您会得到意想不到的结果.如果值为false,则为false,“”或null,但是字符串“false”不是,因此它被评估为true.

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

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...