2009-01-13 52 views
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> 

你怎麼能避免當你在一個文本框,然後回車出現這種情況的提示音。

另一方面,我想處理進入onkeypress事件。

Tx!

+0

這將是一個網絡解決方案,所以我無法爲每個用戶禁用它。有什麼辦法可以避免它? – user54517 2009-01-13 23:55:56

+0

您使用的是什麼瀏覽器,操作系統? – 2009-01-13 23:30:42

+0

Internet Explorer 7.0/8.0Beta和Windows Vista SP1但它與瀏覽器更相關。 – user54517 2009-01-13 23:47:39

回答

0

如果它與觀衆正在使用的瀏覽器相關,那麼他們已經習慣了這種情況,因爲它發生在除您之外的其他所有網站上。我會說這不值得擔心 - 有點像JavaScript關閉的人。他們知道他們已經關閉了,他們習慣於缺乏某些功能的網站。你不能強迫他們打開它,也不能強迫他們關閉聲音。這是您在網絡應用中必須接受的體驗之一。

0

您必須在操作系統上的聲音首選項中將其關閉。這是一個Internet Explorer的事情。

0

我在asp中沒有做太多的事情,但我的第一個想法是,它將類似於Winforms應用程序。解決這個問題的第一步是設置鍵(代碼,鍵碼,無論它在事件中命名的)var到#0還是null,以及在返回之前事件調用中的任何變量,如e.handled。

1

在你的表單標籤onkeypress="if(event.keyCode==13)return false;"

10

首先,將這個,這不是標準的行爲按下網頁上的文本框中輸入時得到一個蜂鳴聲。嘗試Google的搜索頁面,或者嘗試使用此頁面底部的姓名,電子郵件和主頁字段。在按下任何瀏覽器時按下回車鍵都不會發出嗶嗶聲。

爲了防止蜂鳴聲,您<INPUT>標籤處理onKeyDown事件,如果按下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

0

最後,我可以在頁面的所有組件上禁用蜂鳴聲,同時在文本框或組合框或任何需要的組件中按Enter鍵。我所做的是我加[onkeypress事件=「如果(event.keyCode == 13)返回false;」在我的身體像標籤如下:

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

我在GWT應用GXT使用上面的代碼。

克尚Babbar

0

KeyPressEvent.preventDefault()似乎這樣的伎倆在GWT

4

一對夫婦的事情,這裏要注意...

  1. 如果提交按鈕被隱藏或者根本沒有提交按鈕,將發生警報。如果像我平常那樣手動滾動自己的按鈕(因爲默認的OS按鈕很醜),情況往往是這樣。你可能想要考慮的一件事是使用<button type="submit"></button>,因爲你可以比標準輸入按鈕更多地設計它們,它們將有機地處理關鍵事件。

  2. 如果您攔截了keyup或​​上的keyCode 13,仍然會發出警報。我不知道這些事件是什麼,但您必須使用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(); 
        } 
    });