Javascript Ajax调用未运行onKeydown

Javascript Ajax调用未运行onKeydown,javascript,jquery,asp.net,ajax,Javascript,Jquery,Asp.net,Ajax,我有一个ajax调用,它假设在按下特定文本框上的一个键时运行。在调用中,它运行一个函数来触发警报。但是,它不起作用。也许是因为我用一篇旧的论坛帖子作为参考写了这个电话。假设,我调用了jquery库,因为在我的测试中我调用了jquery库,但我没有在这里发布它 这就是我迄今为止所尝试的: <script> $("#<% =tb.ClientID%>").keydown ( function ()

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

这就是我迄今为止所尝试的:

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

<body>

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

</body>

$(“#”)。向下键
(
函数()
{
调试器;警报(“你好”);
}
);

我不熟悉这种电话。我非常熟悉js函数,但我从未这样做过。如有任何解释和建议,将不胜感激

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

脚本中,您正在运行
$(“#”)
。它将尝试通过其ID查找元素,但由于
主体
尚未处理,因此不会产生任何结果。如果没有结果,它就没有可以为
.keydown
设置侦听器的内容

在这种情况下,使用jQuery的
$(document).ready
函数或其等价物对代码来说变得极其重要和关键<代码>$(document).ready
接受一个函数,它将等待DOM完全加载后再执行该代码。因此,将
$(“#”).keydown….
放在
$(文档)中。ready
将确保元素有机会在
.keydown
侦听器连接到它之前进入DOM


您可以找到
$(document.ready()

的文档。您的代码尝试选择一个在代码运行时不存在的元素。请将脚本移动到
正文的底部
或将其包装在DOM ready语句中。现在,您的脚本是在ID为tb的元素加载到页面之前执行的。@tymeJV有道理的话,我会试试看。谢谢应该是这样的
$(document).ready(“#”)keydown(function(){})
?@JoséCorretjer-Gómez——关闭,DOM ready接受一个函数,然后您的代码进入该函数中-
$(document).ready(function(){//your HANDLERS HERE})
@tymeJV很抱歉打扰您。我尝试了它,但仍然不起作用。这是我编写的
$(文档).ready(函数(){$(“#”).keydown(函数(){debugger;alert(“hello”);});});
它是否返回正确的元素?如果您手动尝试通过该id查找元素,它是否返回任何内容?我设法解决了它。但是我完全改变了我的方法,所以我没有发布任何内容,但是,为了方便起见,我会将我们标记为答案:P