我有一个布尔值设置为表单中的隐藏变量,我有下面的JavaScript.
$().ready(function() {
var flag = $('#popUpFlag').val();
alert("flag = "+flag);
if(flag){
alert("flag is true");
}else{
alert("flag is false");
}
})
Run Code Online (Sandbox Code Playgroud)
这些是警报的输出.
flag =
flag is false
flag = false
flag is false
flag = true
flag is false
Run Code Online (Sandbox Code Playgroud)
我担心的是第三项产出.当标志为真时,为什么打印"flag is false",而不是"flag is true".我在IE8和FF 4中测试过它
欢迎提出建议.
Guf*_*ffa 16
不,您在隐藏字段中没有布尔值.字段中的值始终为字符串.
当您使用字符串值时,就好像它是一个布尔值,您会得到意外的结果.条件是假的,如果值是false,0,""或null,但是字符串"false"两者都不是,所以它评估为true.
如果需要布尔值,则必须解析字符串.一种简单的方法是简单地检查字符串是否具有特定值:
var flag = $('#popUpFlag').val() === 'true';
Run Code Online (Sandbox Code Playgroud)
flag 是一个字符串,所以改为:
if (flag === "true") {
//true
}
else if (flag === "false") {
//false
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43804 次 |
| 最近记录: |