IF 语句始终为真
Posted
技术标签:
【中文标题】IF 语句始终为真【英文标题】:IF Statement Always True 【发布时间】: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 语句,但它没有。我试图尽可能简化对我的问题的解释。感谢您的理解。
【问题讨论】:
【参考方案1】:您需要使用==
或===
进行比较,而不是=
。
x = y
将 y
分配给 x
x == y
检查 y
和 x
是否大致相等
x === y
检查 y
和 x
是否相等且类型相同
所以你需要做的是用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")
【讨论】:
以上是关于IF 语句始终为真的主要内容,如果未能解决你的问题,请参考以下文章
如何将 DOM 更改为“if/else”语句单独为真,如果所有 if 语句都为真,也将变量设置为真?