如果条件错误,为什么还会显示弹出窗口?

时间:2014-09-08 12:30:19

标签: c# jquery asp.net

我的asp.net页面中有一个隐藏字段,它定义了一个值,我必须用它来显示或不显示弹出窗口:

<asp:HiddenField ID="hfNoShowPopup" ClientIDMode="Static" runat="server" />

生成:

<input type="hidden" name="ctl00$ContentMain$hfNoShowPopup" id="hfNoShowPopup" value="IN PROGRESS" />

在我的JQuery中,我有以下内容:

$(document).ready(function () {

    //Enable after completing the form to show the pop-up
    if ($("#hfNoShowPopup").val() != "COMPLETED" || $("#hfNoShowPopup").val() != "IN PROGRESS") {
        centerPopupChoice();
        loadPopupChoice();
        alert("IN PROGRESS");
    }
    else {
        alert("COMPLETED");
    }
}

我想要完成的是,如果值为COMPLETED或IN PROGRESS不显示弹出并提示IN PROGRESS,否则显示弹出窗口并提示COMPLETED。

当我访问该页面时,虽然该值为“正在进行”,但我仍然显示弹出窗口。

我该如何解决?

当我有这个时:

if ($("#hfNoShowPopup").val() != "COMPLETED")

它运作良好。

2 个答案:

答案 0 :(得分:2)

然后试试这个,

if ($("#hfNoShowPopup").val() != "COMPLETED" && $("#hfNoShowPopup").val() != "IN PROGRESS") {
    centerPopupChoice();
    loadPopupChoice();
    alert("IN PROGRESS");
}
else {
    alert("COMPLETED");
}

&&符号会检查两个值是否为真。

如评论中所述,true || false == true。这就是为什么你总是得到第一个警报框。

答案 1 :(得分:1)

只需替换||与&amp;&amp;否则你总是有真的

//Enable after completing the form to show the pop-up
if ($("#hfNoShowPopup").val() != "COMPLETED" && $("#hfNoShowPopup").val() != "IN PROGRESS") {
    centerPopupChoice();
    loadPopupChoice();
    alert("IN PROGRESS");
}
else {
    alert("COMPLETED");
}

你希望你的val与“COMPLETED”和“IN PROGRESS”不同,如果你保留OR条件,两个值都允许你进入。