0 votes

La fonction $() de jQuery renvoie toujours "undefined" avec AJAX

J'ai remarqué que la popup s'affiche AVANT que le texte ne soit mis à jour dans la zone de texte, je suppose que js est appelé avant que la page ne soit rendue ... cela expliquerait la popup 'undefined' ... comment puis-je m'assurer que js est appelé APRES que la page soit rendue ?

la réécriture pour la rendre aussi simple que possible :

<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>

Code Behind :

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

LA BOÎTE DE TEXTE N'EST PAS CACHÉE, ALERT() RENVOIE 'UNDEFINED'.

alt text

1voto

Crescent Fresh Points 54070

Il vous manque simplement la syntaxe du sélecteur id. Essayez :

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

Notez l'ajout "#" avant chaque sélecteur.

0voto

Jason Miesionczek Points 7033

Une chose que vous pourriez essayer est d'utiliser Firebug, ou un autre inspecteur DOM et de vérifier les ID des éléments qui sont générés par ASP.NET avant et après votre appel AJAX et de voir s'ils sont les mêmes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X