我试图将数据库(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";
}
答案 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"%>