jQuery出现奇怪的'undefined'错误

时间:2014-06-02 19:54:55

标签: jquery asp.net

我试图在jQuery中从asp.net应用程序中读取会话值。我知道这需要一个隐藏字段,一个jQuery ajax的页面方法。我选择使用隐藏元素,这很简单:

<asp:HiddenField runat="server" ID="SessionAdmin" />

然后在我后面的代码中填充它

SessionAdmin.Value = Session("selectedcompanypriviledge").ToString().ToLower()
然后我尝试使用它:

var isAdmin = $("#SessionAdmin").val();
alert($("#SessionAdmin").val());
if (isAdmin != "coadm" && isAdmin != "tcadm" && isAdmin!= "taagt") {
    $("#htl_gds").hide();
    $("#htl_propcode").hide();
    $("#htl_RFPId").hide();
}
else {
    //alert(isAdmin);
    $("#htl_gds").show();
    $("#htl_propcode").show();
    $("#htl_RFPId").show();
}

” 它是第一次奇妙地工作,警报给了我我期待的东西和项目显示。当我点击下一个链接(或之后的任何链接)然后我'未定义 isAdmin 的值。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

当按ID访问ASP.NET服务器端控件时,您需要记住ASP.NET破坏客户端上呈现的实际ID(通过将其父命名容器名称添加到其中。最好找到该字段的实际ID通过使用一个小内联脚本:

$("#<%= SessionAdmin.ClientID %>").val();

现在您正在从字段中正确访问值,任何其他问题可能与代码隐藏中如何设置该字段的值有关。确保代码在Page_Load方法中的每个回发上运行(例如)。还要确保在DOM准备就绪后才运行JavaScript代码:

$(function() {
    // Your existing JavaScript code here
});