Функция jQuery $ () всегда возвращает undefined с AJAX - PullRequest
0 голосов
/ 26 февраля 2009

я заметил, что всплывающее окно показывает, ДО того, как текст будет обновлен в текстовом поле, я думаю, 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";
}

TEXTBOX НЕ ПОЛУЧИЛСЯ, ALERT () ВОЗВРАЩАЕТСЯ «НЕ ОПРЕДЕЛЕНО»

alt text

Ответы [ 2 ]

1 голос
/ 26 февраля 2009

Вам просто не хватает синтаксиса селектора идентификаторов. Попробуйте:

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

Обратите внимание на добавление "#" перед каждым селектором.

0 голосов
/ 26 февраля 2009

Вы можете попробовать использовать Firebug или другой инспектор DOM и проверить фактические идентификаторы элементов, которые генерируются ASP.NET до и после вызова AJAX, и посмотреть, совпадают ли они.

...