在相同的javascript if条件下运行,而不考虑给定变量的值
即使 isAdmin=false 代码没有进入状态在相同的javascript if条件下运行,而不考虑给定变量的值,javascript,asp.net,Javascript,Asp.net,即使 isAdmin=false 代码没有进入状态 if(!isAdmin) 因此,我没有得到期望的输出。 以下是在asp.net中调用时的方式: <span onclick="DisplayPrdWeightGrd('<%#Container.ItemIndex + 1 %>','<%# Eval("OrderId")%>','<%= Convert.ToBoolean(Utility.IsAdmin()) %>');"> 函数D
if(!isAdmin)
因此,我没有得到期望的输出。
以下是在asp.net中调用时的方式:
<span onclick="DisplayPrdWeightGrd('<%#Container.ItemIndex + 1 %>','<%# Eval("OrderId")%>','<%= Convert.ToBoolean(Utility.IsAdmin()) %>');">
函数DisplayPrdWeightGrd(索引、医嘱ID、isAdmin){
$.ajax({
类型:“POST”,
url:“../handlers/DisplayOrderDetail.ashx?OrderId=“+OrderId+”&tk=“+$.now(),
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(数据){
如果($('#tableOrderDetail'+index+'tr')。长度Try
然后检查是否存在其他条件
if(!isAdmin)
试一试
然后检查是否存在其他条件
if(!isAdmin)
您正在将该isAdmin
参数的值设置为字符串。因此,“if”中的检查将检查字符串的“truthy”值,即任何非空/非空值。因此'True'
和'False'
这两个值都将被视为True
要解决这个问题:
删除
确保获得true
和false
(小写!)。您可能需要添加.ToString().ToLowerInvariant()
。或者(猜测实用程序.IsAdmin()返回bool):
您正在将该isAdmin
参数的值设置为字符串。因此,“if”中的检查将检查字符串的“truthy”值,即任何非空/非空值。因此'True'
和'False'
这两个值都将被视为True
要解决这个问题:
删除
确保获得true
和false
(小写!)。您可能需要添加.ToString().ToLowerInvariant()
。或者(猜测实用程序.IsAdmin()返回bool):
isAdmin
只存在于ajax调用中,因此您的setDataOnRow
函数将无法识别它,因此总是转到elseisAdmin
只存在于ajax调用中,因此您的setDataOnRow
函数将无法识别它,因此总是转到else<>
函数DisplayPrdWeightGrd(index,OrderId,isAdmin){var Admin=isAdmin.toLowerCase();
$.ajax({
类型:“POST”,
url:“../handlers/DisplayOrderDetail.ashx?OrderId=“+OrderId+”&tk=“+$.now(),
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(数据){
如果($('#tableOrderDetail'+index+'tr')。长度
函数DisplayPrdWeightGrd(index,OrderId,isAdmin){var Admin=isAdmin.toLowerCase();
$.ajax({
类型:“POST”,
url:“../handlers/DisplayOrderDetail.ashx?OrderId=“+OrderId+”&tk=“+$.now(),
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(数据){
if($('#tableOrderDetail'+index+'tr')。如果我更改为if(isAdmin),则为length然后它进入条件,而不是其他。响应是反之。检查isAdmin的类型。如果它是字符串,则它将始终进入If条件。确定其类型为字符串。我已发布答案将其转换为布尔值,然后进行检查。如果我改为If(isAdmin)然后它进入条件,而不是其他。响应是vice versecheck isAdmin的类型。如果它是字符串,则它将始终进入If条件。确定它的类型是字符串。我已发布了答案,将其转换为布尔值,然后进行检查。仍然是相同的情况,它不进入If(!isAdmin)条件block@HinaKhumanconsole.log(typeof isAdmin,isAdmin)在转换后的输出是什么。var Admin=typeof(isAdmin);给我字符串typevar isAdmin=Boolean(isAdmin);console.log(typeof isAdmin,isAdmin);现在可以安慰什么?复制粘贴与注释中相同的行。在Saler或Admin这两种情况下,它都会给出真值。var Admin=Boolean(isAdmin);alert(Admin);如果(!isAdmin)条件仍然相同,它不会进入内部block@HinaKhumanconsole.log的输出是什么(类型为isAdmin,isAdmin)转换后。var Admin=typeof(isAdmin);给我字符串typevar isAdmin=Boolean(isAdmin);console.log(typeof isAdmin,isAdmin);现在什么是consoled?复制粘贴与comment中相同的行。在Saler或Admin这两种情况下,它都给出真值。var Admin=Boolean(isAdmin);alert(Admin);不在setDataOnRow内。我在该函数内设置了alert。alert给出了确切的值不在setDataOnRow内。我在该函数内设置了alert。alert给出了确切的值,使用您的删除引号点,不调用all@HinaKhuman它写的是True
(大写T)或者true
(小写)?(应该是小写)生成的html/javascript中实际有什么?javascript控制台中有任何错误吗?使用ur删除引号的点,不会调用all@HinaKhuman它写的是True
(大写T)还是True
(小写)?(应该是小写)生成的html/javascript中到底有什么?javascript控制台中有错误吗?