2009-06-04 11 views
8

na prostych form z jednego pola tekstowego naciśnięcie klawisza Enter wysyła formularz (i to jest dobre dla prostych form wyszukiwania)Jakie zdarzenie należy pominąć, aby zatrzymać IE z "Dinging", gdy naciśnięto enter w polu tekstowym?

Jednak na formularzu z wielu dziedzinach, naciskając klawisz Enter w wejściu = „text” box wygrał” rób cokolwiek (np. prześlij), ale w IE "Dings" tak jakbyś próbował usunąć nie dający się usunąć obiekt.

Pytanie brzmi ... jakie zdarzenie muszę tłumić w IE, aby zatrzymać ten dźwięk? na przykład jeśli mam formularz nazwy użytkownika/hasła, chcę wprowadzić klucz do przesłania formularza, ale na pewno nie chcę dźwięku "błędu".

Przykładowa strona z dźwiękiem: http://www.sears.com/shc/s/StoreLocatorView?storeId=10153&catalogId=12605 Wystarczy nacisnąć Enter w dowolnym polu tekstowym. Ding !, Ding !, Ding!

użytkowników Non-IE, dźwięk jest: Program Wydarzenia> Windows> Default Beep ("Windows XP Ding.wav")

Odpowiedz

10

Więc wydaje się, że to działa:

<!-- suppress sound (and suppress submit) --> 
<input type="text" onkeypress="if(window.event.keyCode == 13){return false;}"/> 

<!-- suppress sound (BUT allow submit) --> 
<input type="text" onkeypress="if(window.event.keyCode == 13){this.form.submit();return false;}"/> 
+0

Czy to nie przeszkodzi w przesłaniu formularza? – jimyi

+0

Tak, to będzie (na pojedynczym formularzu pola), ale kluczem jest return false. Mogę to zrobić po wykonaniu innych czynności, w tym przesłaniu formularza. ;-) – scunliffe

+1

Jezu, dlaczego to jest nawet w IE STILL? Ale dziękuję! Zadziałało. –

-1

myślę, że jest kontrolowany przez system operacyjny & stąd, to nie mogę być sterowane przy użyciu javascript .

0

On ma rację. Pole tekstowe chcesz, aby nie drażnić cię piosenki ding

tylko dodać

onkeypress="if(window.event.keyCode == 13){return false;}" 

wam tag wejściowy

<input type="whatever" onkeypress="if(window.event.keyCode == 13){return false;}" > 

Ale nie rób tego w przedłożenia lub wejście przycisk OK. Tylko do pól tekstowych, aby nie denerwować się przez ding! ding! teraz. Sprawdziłem.

2
$("#logonForm").keypress(function (e) { 
      if (e.keyCode == '13') { 
       if (instance.Validate(instance)) { 
        document.forms["logonForm"].submit(); 
        return false; //Do not delete, suppresses ding in IE... :P 
       } 
      } 
     }); 

To działa, używamy go.

0
$("#txtSomething").keypress(function (e) { 
     if (e.which == 13) { 

      e.Handled = true; //This will prevent the "ding" sound 

      //Write the rest of your code 
     } 
    });