在相同的javascript if条件下运行,而不考虑给定变量的值

在相同的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

即使

isAdmin=false

代码没有进入状态

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
    函数将无法识别它,因此总是转到
    else

    isAdmin
    只存在于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控制台中有错误吗?