0

ユーザーがEnterキーを押すと、ページがポストバックされるWebフォームがあります。ここに問題があります: ユーザーがフォームをクリックすると、コントロールがフォーカスされ (入力コントロールをクリックしようとしているときのマウス ポインターに変わります)、Enter キーを押すと、ページがリロードされます。

ユーザーがクリックした場所に関係なく、任意のキーの押下をキャプチャする方法はありますか?

4

4 に答える 4

1
    //Jquery example:
    //Bind this keypress function to all of the input tags 
$("input").keypress(function (evt) { 
    //Deterime where our character code is coming from within the event 
    var charCode = evt.charCode || evt.keyCode; 
    if (charCode == 13) {
     //Enter key's keycode 
    return false; 
}
     });
于 2013-08-15T19:53:53.900 に答える
0

Enter キーが押されたときにボタンが「クリック」されないようにし、ユーザーが入力コントロールにいるときにポストバック/送信が行われないようにする場合は、ボタンをポストバックしないように設定するか、過去に行ったことを行う必要があります。私が持っていた状況で私のパネルのデフォルトボタンとして設定するために何もしないボタンが設定されています。

<asp:Panel ID="pPanel" runat="server" DefaultButton="bDefault">
   <%-- here are all the input controls and a button that 
    now must be physically clicked to submit--%>
</asp:Panel>

<asp:Button ID="bDefault" runat="server" Text="" CssClass="hidden" OnClientClick="return false;" />

return false OnClientClick により、ボタンはポストバックされません。

于 2013-08-15T19:52:15.023 に答える
0

KeyCode 13をキャプチャすることで body タグでこれを無効にすることができますが、これがブラウザー間でどの程度互換性があるかはわかりません。

<body onkeydown = "return (event.keyCode!=13)">
于 2013-08-15T19:34:38.500 に答える
0

jquery を使用して keyup イベントを登録し、return キーだけに集中することができます。次に、指定されたこの値に対して適切に反応していることを確認する必要があります。

$(document).on('keydown', function(e){ //ロジック }

于 2013-08-15T19:35:20.553 に答える