O evento que eu preciso para suprimir parar o IE de “Dinging” quando eu pressione enter em uma caixa de texto?

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

Pergunta

Em formas simples com uma caixa de texto enter envia o formulário (e isso é ótimo para formulários de pesquisa fáceis)

No entanto, em um formulário com múltiplas campos, pressionando ENTER em uma entrada = box "texto" não vai fazer nada (por exemplo, enviar), mas no IE-lo "Dings" como se você tentou excluir um objeto undeletable.

A questão é ... o evento que eu preciso suprimir no IE para parar este som? por exemplo. se eu tiver uma forma nome de usuário / senha, quero a tecla Enter para enviar o formulário, mas eu certamente não quer que o som "erro".

local Exemplo com o som: http://www.sears.com/shc/s/StoreLocatorView?storeId = 10153 & catalogId = 12605 Apenas pressione Enter em qualquer um dos campos de texto. Ding Ding !, !, Ding!

Os usuários não-IE, o som é o: Programa de Eventos> Windows> Padrão Beep ( "Windows XP Ding.wav")

Foi útil?

Solução

Bem, parece que isso funciona:

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

Outras dicas

$("#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
                }
            }
        });

Isso funciona, podemos usá-lo.

Ele está certo. O campo de texto que você quer, para não perturbá-lo com ding canção

só adicionar

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

para você marca de entrada

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

Mas não faça isso em enviar ou entrada botão OK. Apenas para os campos de texto, para que você não ficar irritado por ding! ding! agora. Eu verifiquei.

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

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

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

Eu acho que é controlado pelo OS & portanto, ele não pode ser controlado usando javascript.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top