0

我注意到弹出显示在文本框中的文本更新之前显示,我猜 js 在页面渲染之前被调用......这将解释“未定义”弹出窗口......我如何确保在页面之后调用 js被渲染?

重写以使其尽可能简单:

<body>
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:TextBox ID="txtRcaNotes" runat="server" TextMode="MultiLine" Width="800px"></asp:TextBox><br />
            <asp:Button ID="btnDoneWithRcs" runat="server" OnClick="btnDoneWithRcs_Click" Text="Action Completed / Update Notes" />
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

<script type="text/javascript">

        var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_endRequest(
            function(){doStuff();}
            );

        function doStuff()
        {
            $(document).ready(function() {
                                $('txtRcaNotes').hide(); 
                                alert($('txtRcaNotes').attr('id'));
                                });
        }

</script>
</body>

代码背后:

protected void btnDoneWithRcs_Click(object sender, EventArgs e)
{
    txtRcaNotes.Text += "asdfadf";
}

文本框没有隐藏,ALERT() 返回“未定义”

替代文字

4

2 回答 2

1

您只是缺少 id 选择器语法。尝试:

$('#<%= txtRcaNotes.ClientID %>').hide(); 
alert($('#<%= txtRcaNotes.ClientID %>').attr('id'));

请注意"#"每个选择器之前的添加。

于 2009-02-26T02:40:32.883 回答
0

您可以尝试的一件事是使用 Firebug 或其他一些 DOM 检查器,并在 AJAX 调用之前和之后检查 ASP.NET 生成的实际元素 ID,看看它们是否相同。

于 2009-02-26T02:32:08.037 回答