任何人都可以告诉我如何捕获div标签中的关键事件吗?
我写了这段代码,但它没有用?
<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>
答案 0 :(得分:1)
您必须有一个焦点才能触发按键事件。
或者您可以在文档对象上应用按键。
使用jQuery:
$(document).keypress(function(){
/*do something*/
});
答案 1 :(得分:1)
只有可以获得焦点的元素(如输入和其他与表单相关的元素)才会触发关键事件。要强制<div>
元素能够获得焦点,您可以使其成为可信的,这可能不是您想要的,或者添加tabindex
属性。使用值0将元素放置在Tab键顺序中的默认位置。
<div id="SDiv" tabindex="0" style="background-color: White;"
onkeypress="kypress()">
...
</div>
答案 2 :(得分:0)
你可以通过使用像这样的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>
答案 3 :(得分:0)
请参阅主题“jQuery Event Keypress: Which key was pressed?”获取答案......
您需要设置div的tabindex属性,如下所示:
<div id="example" tabindex="1" />