即使价值


  isAdmin =否


代码没有进入条件

if(!isAdmin)


结果,我没有得到想要的输出。
下面是在asp.net中调用的方式:

   <span onclick="DisplayPrdWeightGrd('<%#Container.ItemIndex + 1 %>','<%# Eval("OrderId")%>','<%= Convert.ToBoolean(Utility.IsAdmin()) %>');">




function DisplayPrdWeightGrd(index, OrderId, isAdmin) {
  $.ajax({
type: "POST",
url: "../handlers/DisplayOrderDetail.ashx?OrderId=" + Orderid + "&tk=" + $.now(),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
  if ($('#tableOrderDetail_' + index + ' tr').length <= 1) {
    $.each(data, function(i, v) {
      setDataOnRow(index, v, i);
    });
  }
},
failure: function(response) {
  alert("fail");
},
error: function(response) {
  alert(response);
}
  });

  function setDataOnRow(idx, v, i) {

var totalprice;
if (v.IsGST == true) {
  totalprice = parseFloat(v.TotalPrice * (1.1)).toFixed(2);
} else {
  totalprice = parseFloat(v.TotalPrice).toFixed(2);
}

//debugger;

var obj = $('#tableOrderDetail_' + idx + ' tr td table:last');
if (!isAdmin) {
  $('#tableOrderDetail_' + idx + ' tr:last').after('<tr>' +
    '<td  width="25%" >' + (i + 1) + '</td>' +
    '<td  width="25%" class="center">' + v.ProductName + '</td>' +
    '<td width="12%" class="center">' + v.NoOfCarton + '</td>' +
    '<td width="12%" class="center">' + v.ProductQuantity + '</td>' +
    '<td width="12%" class="center">' + v.OriginalPrice + '</td>' +
    '<td width="12%" class="center">' + v.OrderPrice + '</td>' +
    '<td width="10%" class="center">' + v.IsGST + '</td>' +
    '<td width="10%" class="center">' + v.Discount + '</td>' +
    '<td width="12%" class="center">' + totalprice + '</td></tr>');
} else {
  $('#tableOrderDetail_' + idx + ' tr:last').after('<tr>' +
    '<td  width="25%" >' + (i + 1) + '</td>' +
    '<td  width="25%" class="right">' + v.ProductName + '</td>' +
    '<td width="12%" class="right">' + v.NoOfCarton + '</td>' +
    '<td width="12%" class="right">' + v.ProductQuantity + '</td>' +
    '<td width="12%" class="right">' + v.OriginalPrice + '</td>' +
    '<td width="12%" class="right">' + v.OrderPrice + '</td>' +
    '<td width="10%" class="right">' + v.IsGST + '</td>' +
    '<td width="10%" class="center">' + v.Discount + '</td>' +
    '<td width="12%" class="center">' + totalprice + '</td></tr>');
}
  }





我试过调试器,它总是会继续,否则条件isAdmin的值为true或false。卡在这里。

最佳答案

您正在将该isAdmin参数的值设置为字符串。因此,“ if”内部的检查将检查字符串的“ truth”值,该值是任何非null / non empty值。因此,值'True''False'都将被视为true

要解决这个问题:


删除<%= Convert.ToBoolean(Utility.IsAdmin()) %>周围的引号
确保您得到truefalse(小写!)。您可能需要添加.ToString().ToLowerInvariant()。或(猜测Utility.IsAdmin()返回布尔值):<%= Utility.IsAdmin() ? "true" : "false" %>

关于javascript - 在相同的javascript中,如果条件与给定变量的值无关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39828923/

10-09 09:55