2009-06-04 8 views
8

su semplici forme con una casella di testo premendo invio invia il modulo (e questo è grande per le forme di ricerca facile)Quale evento devo annullare per fermare IE da "Dinging" quando premo invio in una casella di testo?

Tuttavia su un modulo con più campi, premendo Invio in un input = "text" scatola ha vinto' Fare qualsiasi cosa (ad esempio inviare) ma in IE "Dings" come se si fosse tentato di eliminare un oggetto non cancellabile.

La domanda è ... quale evento devo eliminare in IE per interrompere questo suono? per esempio. se ho un nome utente/password, voglio il tasto invio per inviare il modulo, ma certamente non voglio il suono "errore".

Esempio di sito con il suono: http://www.sears.com/shc/s/StoreLocatorView?storeId=10153&catalogId=12605 Basta premere Invio in uno qualsiasi dei campi di testo. Ding !, Ding !, Ding!

utenti non-IE, il suono è il: Programma Eventi> Windows> predefinito Beep ("Windows XP Ding.wav")

risposta

10

Beh, sembra che questo funziona:

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

Questo non impedisce la presentazione del modulo? – jimyi

+0

sì lo sarà (su un singolo modulo di campo) ma la chiave è il ritorno falso. Posso farlo dopo aver fatto altre cose, incluso l'invio del modulo. ;-) – scunliffe

+1

Gesù, perché questa cosa è ancora in IE ANCORA? Ma grazie! Ha funzionato. –

-1

Immagino che è controllato da OS & quindi, cant essere controllato utilizzando JavaScript .

0

Ha ragione. Il campo di testo che si desidera, per non infastidire con la canzone ding

aggiungere solo

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

a voi tag input

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

Ma non farlo nel presentare o ingresso pulsante OK. Solo per i campi di testo, quindi non ti infastidire di ding! ding! adesso. Ho controllato.

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

Questo funziona, lo usiamo.

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

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

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