Ajax调用没有在凯登

时间:2015-04-24 20:39:17

标签: javascript jquery asp.net ajax

我有这个ajax调用,假设在特定文本框上按下某个键时运行。一旦进入通话,它就会运行一个触发警报的功能。但是,它不起作用。也许是因为我使用旧的论坛帖子作为参考来编写电话。假设,我在我的测试中调用了jquery库,但是我没有在这里发布它。

这是我到目前为止所尝试的:

<script>
       $("#<% =tb.ClientID%>").keydown
        (
            function ()
            {
                debugger; alert("hello");
            }
        );
</script>

<body>

   <asp:TextBox Id = "tb" runat = "server"/>

</body>

我是这些电话的新手。我对js函数非常熟悉,但我从来没有这样做过。任何解释和建议,将不胜感激。

1 个答案:

答案 0 :(得分:2)

HTML逐行处理。因此,当它处理script标记的内容时,它还没有进一步处理任何内容,例如body标记或其内容。

script内,您正在运行$("#<% =tb.ClientID%>")。它会尝试按ID查找元素,但由于body尚未处理,因此不会产生任何结果。如果没有结果,则无法为.keydown设置侦听器。

在这种情况下,使用jQuery的$(document).ready函数或其等价物变得非常重要且对代码至关重要。 $(document).ready接受一个函数,它将等到DOM完全加载后再执行该代码。因此,将$("#<% =tb.ClientID%>").keydown....放在$(document).ready内将确保元素有机会在.keydown侦听器附加到DOM之前进入DOM。

您可以找到$(document).ready() here的文档。