【问题标题】:IF Statement Always TrueIF 语句始终为真
【发布时间】:2012-09-30 15:05:11
【问题描述】:

我有一个 radwindow,用于向应用程序中的用户显示错误消息。
我的目标如下;
如果消息不是警告/错误,我希望用户在弹出的 radwindow 上单击“确定”时被重定向。 为此,我在操作成功时将 HiddenField 值设置为“1”,在操作失败时将值设置为“0”。 我的问题是,当我在客户端检查 HiddenField 值时,IF 语句总是返回 true,并且页面被重定向。

以下是我设置 hiddenfield 值并设置 radwindow 消息的情况;

if(x)
{
   hfPasswordWarning.Value = "0";
   ShowMessage(MessageResource.ChangePasswordAuthenticateError,false);
}

else
{
   hfPasswordWarning.Value = "1";
   ShowMessage(MessageResource.ChangePasswordSuccess,true);
}

我遇到问题的客户端代码,IF 语句总是正确的;

var hv = $('#hfPasswordWarning').val();

    if (hv.val = "1") {
        window.location = "../Main/Login.aspx";
    } else {
        return false;
    }

我添加了一个 Alert("xx") 来检查它是否进入 else 语句,但它没有。我试图尽可能简化对我的问题的解释。感谢您的理解。

【问题讨论】:

    标签: javascript parameter-passing client-side radwindow hiddenfield


    【解决方案1】:

    您需要使用===== 进行比较,而不是=

    • x = yy 分配给 x
    • x == y 检查 yx 是否大致相等
    • x === y 检查 yx 是否相等且类型相同

    所以你需要做的是用if (hv.val == "1")替换if (hv.val = "1")

    【讨论】:

      【解决方案2】:

      你写的

      if (hv.val = "1")
      

      但这是一个赋值(在您的代码中评估为真):检查是否相等是 ==(值相等)或 ===(值和类型相等)

      【讨论】:

      • 实际上一个赋值并不总是为真,而是共享赋值的真实性。
      • 现在它根本不会重定向,无论如何。我很抱歉错过了 == 寿,我的错。
      • 可能你必须简单地写if (hv == "1") - hv 是上一行中val() 方法返回的结果
      • 谢谢您的好心先生,您的真诚帮助。
      • @user1595357 如果有帮助,您应该接受答案:)
      【解决方案3】:

      您使用了 = 运算符,它用于比较赋值 == 运算符,试试这个 在你的 if 语句中试试这个

      if(hv.val=="1")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-07
        • 2012-03-07
        • 2017-02-21
        • 2021-10-04
        • 1970-01-01
        • 2019-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多