Javascript将布尔值与True进行比较

时间:2014-04-16 16:57:55

标签: javascript

我试图将数据库(SQL)值(正确返回)与布尔值“true”进行比较。如果数据库位值为= true,那么我希望div元素变为可见,否则保持隐藏。

<script language="javascript">
    window.onload= function show_CTL() {
        if(<%=_CurrentUser.IsCTL%> == true){
            document.getElementById('CTL').style.visibility = "visible";
        } else{
            document.getElementById('CTL').style.visibility = "hidden";
        }
    }    
</script>

但是我收到了错误,Javascript:'True'未定义。

我尝试了很多&lt;%= _ CurrentUser.IsCTL%&gt;的组合。 =='true'或“true”或true或“True”或“true”甚至是=== ......但所有这些都给出了相同的错误信息。

非常感谢有关如何解决此问题的任何见解。

我之前使用整数值成功进行了这样的比较,例如: -

 window.onload= function show() {
    if(<%=_CurrentUser.RoleKey%> == 1 || <%=_CurrentUser.RoleKey%> == 2)
            document.getElementById('enr').style.visibility = "visible";
    else
            document.getElementById('enr').style.visibility = "hidden";
 }

4 个答案:

答案 0 :(得分:5)

这样做:

if("<%=_CurrentUser.IsCTL%>" === "True")

<%=_CurrentUser.IsCTL%>正在返回True。所以用字符串包装并比较它们。请注意&#39; ===&#39;而不是&#39; ==&#39;。

答案 1 :(得分:2)

if(<%=_CurrentUser.IsCTL%> == true)

我认为<%=_CurrentUser.IsCTL%>在浏览器看到代码之前会被评估为True 浏览器会将其视为

if(True == true)

True对浏览器没有多大意义,这就是为什么错误。要将此true视为布尔值,请尝试以下方法之一:

if(new Boolean('<%=_CurrentUser.IsCTL%>') == true)

if(new Boolean('<%=_CurrentUser.IsCTL%>'))

答案 2 :(得分:2)

这也让我受益匪浅。 ASP.NET将返回True以获取布尔值,该值为true。您必须将其设为字符串,然后将其与字符串版本== "True"进行比较,以获得正确的条件语句。

相反,你也可以在javascript中创建一个变量

var True = true;

答案 3 :(得分:0)

您需要在输出之前将原生布尔值转换为字符串“true”。所以,假设ASP.NET MVC,我相信它看起来像:

<%=_CurrentUser.IsCTL ? "true" : "false"%>