Quale evento ho bisogno di sopprimere per fermare IE da “dinging” quando si preme entrare in una casella di testo?

StackOverflow https://stackoverflow.com/questions/952511

Domanda

In forme semplici con una casella di testo premendo enter invia il modulo (e questo è grande per le forme di ricerca facile)

Tuttavia su un modulo con più i campi premendo INVIO in un ingresso = "text" scatola non farà nulla (ad esempio, presentare), ma in IE si "Dings", come se si hanno cercato di eliminare un oggetto indelebile.

La domanda è ... cosa evento ho bisogno di sopprimere in IE per fermare questo suono? per esempio. se ho un modulo di nome utente / password, voglio il tasto Invio per inviare il modulo, ma di certo non voglio che il "errore" del suono.

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

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

È stato utile?

Soluzione

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;}"/>

Altri suggerimenti

$("#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.

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

solo aggiungere

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 in inviare o ingresso pulsante OK. Solo per i campi di testo, in modo da non si ottiene infastidito da ding! ding! adesso. Ho controllato.

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

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

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

Credo che è controllato da OS e quindi, cant essere controllato utilizzando JavaScript.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top