IF 语句始终为真

IT技术 javascript parameter-passing client-side radwindow hiddenfield
2021-02-21 02:59:52

我有一个 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 语句,但它没有。我试图尽可能地简化对我的问题的解释。感谢您的理解。

3个回答

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

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

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

你写了

if (hv.val = "1")

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

@user1595357 如果这有帮助,您应该接受答案:)
2021-04-18 02:59:52
现在它根本不重定向,无论如何。我很抱歉错过 == tho,我的错。
2021-04-27 02:59:52
谢谢好心的先生,真诚的帮助。
2021-04-28 02:59:52
实际上,赋值并不总是正确的,而是共享赋值的真实性。
2021-04-29 02:59:52
可能你必须简单地写if (hv == "1")-hvval()上一行中的方法返回的结果
2021-05-10 02:59:52

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

if(hv.val=="1")