3

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>
4

4 に答える 4

1

入力やその他のフォーム関連の要素など、フォーカスを受け取ることができる要素のみが重要なイベントを発生させます。要素がフォーカスを受け取れるように強制する<div>には、コンテンツを編集可能にするか(おそらく必要なものではない)、tabindex属性を追加します。値0を使用すると、要素はタブ順序のデフォルトの位置に配置されます。

<div id="SDiv" tabindex="0" style="background-color: White;"
     onkeypress="kypress()">
    ...
</div>
于 2012-11-23T09:41:48.350 に答える
1

keypress イベントをトリガーするには、フォーカスが必要です。

または、ドキュメント オブジェクトにキープレスを適用することもできます。

jQuery の使用:

$(document).keypress(function(){
     /*do something*/
});
于 2012-11-23T08:38:35.297 に答える
0

このように contenteditable div を使用することで、これを克服できます。html の変更を防ぐために、false を返すようにしてください。

    <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>
于 2012-11-23T08:53:18.973 に答える