2009-06-04 6 views
8

auf einfache Formen mit einem Textfeld drücken geben Sie das Formular absendet (und das ist großartig für die einfachen Suchmasken)Welches Ereignis muss ich unterdrücken, um IE von "Dinging" zu stoppen, wenn ich in einem Textfeld die Eingabetaste drücke?

jedoch auf einem Formular mit mehrere Feldern, in einem Eingabe Drücken von Enter = „text“ Feld gewonnen‘ t machen Sie nichts (zB senden), aber in IE "Dings", als ob Sie versucht haben, ein nicht löschbares Objekt zu löschen.

Die Frage ist ... welches Ereignis muss ich im IE unterdrücken, um diesen Ton zu stoppen? z.B. Wenn ich ein Benutzername/Passwort-Formular habe, möchte ich die Enter-Taste, um das Formular zu senden, aber ich will sicherlich nicht den "Fehler" Sound.

Beispielseite mit dem Sound: http://www.sears.com/shc/s/StoreLocatorView?storeId=10153&catalogId=12605 Drücken Sie einfach in einem der Textfelder die Eingabetaste. Ding Ding Ding!

Nicht-IE-Benutzer, der Sound ist das: Programm Veranstaltungen> Fenster> Standard Beep ("Windows XP Ding.wav")

Antwort

10

Nun, es scheint, dass dies funktioniert:

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

Wird dadurch das Senden des Formulars nicht verhindert? – jimyi

+0

ja es wird (auf einem einzigen Feld Formular), aber der Schlüssel ist die Rückgabe false. Ich kann das tun, nachdem ich andere Sachen gemacht habe, einschließlich das Einreichen des Formulars. ;-) – scunliffe

+1

Jesus, warum ist das überhaupt eine Sache in IE STILL? Aber danke! Es funktionierte. –

-1

Ich denke, dass & von O gesteuert wird daher kann es nicht gesteuert werden, mit Hilfe von Javascript .

0

Er hat recht. Das Textfeld Sie wollen, nicht, dass Sie mit ding Lied zu ärgern

hinzufügen nur

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

Sie Input-Tag

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

Aber dies nicht tun einreichen oder Tasteneingabe ok. Nur zu den Textfeldern, damit Sie sich nicht durch ding ärgern! ding! jetzt. Ich überprüfte.

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 
       } 
      } 
     }); 

Das funktioniert, wir benutzen es.

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

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

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