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