7

次のように aspx ページを作成すると、次のようになります。

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

    </div>
    </form>
</body>
</html>

テキストボックスに入ってEnterキーを押したときに発生するビープ音を回避するにはどうすればよいですか。

一方、enter onkeypress イベントを処理したいと思います。

送信!

4

8 に答える 8

10

まず第一に、Web ページのテキスト ボックスで Enter キーを押したときにビープ音が鳴るのは標準的な動作ではありません。Google の検索ページを試すか、このページの下部にある [名前]、[電子メール]、および [ホームページ] フィールドを試してください。どのブラウザでも、Enter キーを押してもビープ音は鳴りません。

ビープ音を防ぐには、タグで onKeyDown イベントを処理し<INPUT>、Enter キーが押された場合は false を返します。

<input type="text" name="TextBox1" value="" onKeyDown="return StopBeepOnEnter(event)" />

<script type="text/javascript">
    function StopBeepOnEnter(event)
    {
        if (event.keyCode == 13)
        {
            // Do Whatever...

            return false; // This stops the beep
        } 
    }
</script>

そして、これはjQueryを使用した同じことです(私は実際にこれをテストし、問題を解決しました):

<script type="text/javascript">
    $("#<%=TextBox1.ClientID %>").keydown(function(event)
    {
        if (event.keyCode == 13)
        {
            // Do Whatever...

            return false; // This stops the beep
        }
    });
</script>

このスレッドで解決策を見つけました - Tharn Jaggar の功績:

http://codingforums.com/showthread.php?t=36491

于 2009-07-29T03:09:25.057 に答える
4

ここで注意すべき点がいくつかあります...

  1. 送信ボタンが非表示の場合、または送信ボタンがまったくない場合、アラートが発生します。これは、私が通常行うように独自のボタンを手動でロールする場合によくあります<a>(デフォルトの OS ボタンが見苦しいため)。<button type="submit"></button>標準の入力ボタンよりも多くのスタイルを設定でき、主要なイベントを有機的に処理するため、使用することを検討する必要があるかもしれません。

  2. keyupまたはで keyCode 13 を傍受した場合でも、アラートは発生しますkeydown。これらのイベントが何であるかはわかりませんが、使用する必要がありますkeypress。これは、グローバルレベルでjQueryを使用して通常行うことです...

    $("input[type=text],input[type=password]").keypress(function(e) {    
      if(e.keyCode == 13) {
        $(this).closest("form").trigger("submit");
        e.preventDefault();
      }
    });
    

    次に、ページ レベルで送信イベントをトラップし、検証ルーチンを実行します...

    $("form").submit(function(e) {
      var txt = $("#txtUser");
      if(txt.val().length == 0) {
        alert("Who are you?");
        txt.focus();
        e.preventDefault();
      }
    });
    
于 2011-05-24T17:26:10.487 に答える
1

これをフォームタグに入れますonkeypress="if(event.keyCode==13)return false;"

于 2009-02-08T21:23:32.570 に答える
0

最後に、テキストフィールド、コンボ、または必要なコンポーネントでEnterキーを押している間、ページのすべてのコンポーネントでビープ音を無効にすることができます。私がしたことは、以下のように、bodyタグに[onkeypress = "if(event.keyCode == 13)returnfalse;"]を追加したことです。

   <body onkeypress="if(event.keyCode==13)return false;">

GWTGXTアプリケーションで上記のコードを使用しました。

クリシャンババー

于 2009-11-25T10:53:50.860 に答える
0

KeyPressEvent.preventDefault() GWTでトリックを行うようです

于 2010-01-28T10:44:44.347 に答える
0

オペレーティング システムのサウンド設定でオフにする必要があります。Internet Explorer の事です。

于 2009-01-13T23:51:41.117 に答える
0

視聴者が使用しているブラウザーに関連している場合、視聴者はその発生に慣れています。これは、あなたのサイト以外のすべてのサイトで発生するためです。心配する必要はないと思います - JavaScript をオフにしている人々のようなものです。彼らはそれがオフになっていることを知っており、その結果、特定の機能が欠けているサイトに慣れています. 強制的にオンにすることはできませんし、サウンドをオフにすることもできません。これは、Web アプリで受け入れなければならない経験の 1 つです。

于 2009-01-14T01:00:59.790 に答える
0

私は asp で何もしていませんが、最初に考えたのは、それは Winforms アプリケーションに似ているということです。それを解決するための最初のステップは、キー (コード、キーコード、イベントで名前が付けられているもの) var を #0 または null に設定することと、イベント呼び出しで e.handled などの変数を返す前に設定することです。

于 2009-01-14T02:34:08.073 に答える