Javascript 如何从div标记捕获页面中的任何关键事件?
有人能告诉我如何在div标签中捕获关键事件吗 我写了这段代码,但它不工作Javascript 如何从div标记捕获页面中的任何关键事件?,javascript,Javascript,有人能告诉我如何在div标签中捕获关键事件吗 我写了这段代码,但它不工作 <div id="SDiv" style="background-color: White; " onkeypress="kypress()"> <asp:Label ID="LblSaveAndMoveNext" runat="server" Visible="False" Text="Save"></asp:Label> </div> <script t
<div id="SDiv" style="background-color: White; " onkeypress="kypress()">
<asp:Label ID="LblSaveAndMoveNext" runat="server" Visible="False" Text="Save"></asp:Label>
</div>
<script type="text/javascript">
function kypress() { EnableButtons(true);}
</script>
函数kypress(){EnableButtons(true);}
必须有焦点才能触发按键事件
也可以在文档对象上应用按键
使用jQuery:
$(document).keypress(function(){
/*do something*/
});
您可以通过使用contenteditable div来克服它,如下所示。确保返回false以防止html中的更改
<div id="SDiv" contenteditable="true"
style="background-color: White; " tab-index="1" onkeydown="return keydown();">
<asp:Label ID="LblSaveAndMoveNext" runat="server" Visible="False" Text="Save"></asp:Label>
</div>
<script type="text/javascript">
function keydown(){
var keyCode = event.which;
if(keyCode==13)
document.write('You pressed Enter');
//do your logic here
return false;
}
</script>
函数keydown(){
var keyCode=event.which;
如果(键代码==13)
document.write('您按Enter');
//你的逻辑在这里吗
返回false;
}
只有可以接收焦点的元素(如输入和其他表单相关元素)才会触发关键事件。要强制
元素能够接收焦点,您可以将其设置为contenteditable(这可能不是您想要的),或者添加tabindex
属性。使用值0将在选项卡顺序中将元素放置在默认位置
<div id="SDiv" tabindex="0" style="background-color: White;"
onkeypress="kypress()">
...
</div>
...
请参考“线程”以获取答案
您需要设置div的tabindex属性,如下所示:
<div id="example" tabindex="1" />
div标记不是可以设置焦点的标记。必须先将焦点设置为div。有关详细信息,请查看此链接[1]:。然后查看如何实现。在我的页面中,我没有表单标记。我的要求是,当我按下页面中的任何键时,我应该调用kypress()函数。