我有一个布尔值设置为隐藏变量的形式,我有以下的
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';