if(characterCode == 13)
{
return false; // returning false will prevent the event from bubbling up.
}
else
{
return true;
}
Ok, imagine que você tenha a seguinte caixa de texto em um formulário:
<input id="scriptBox" type="text" onkeypress="return runScript(event)" />
Para executar algum script "definido pelo usuário" nessa caixa de texto quando a tecla Enter for pressionada e não enviar o formulário, aqui está um código de exemplo . Observe que essa função não realiza nenhuma verificação de erro e provavelmente só funcionará no IE. Para fazer isso corretamente, você precisa de uma solução mais robusta, mas terá a ideia geral.
function runScript(e) {
//See notes about 'which' and 'key'
if (e.keyCode == 13) {
var tb = document.getElementById("scriptBox");
eval(tb.value);
return false;
}
}
o retorno do valor da função alertará o manipulador de eventos para não interromper o evento e evitará que o evento de pressionamento de tecla seja tratado ainda mais.
NOTA:
Foi apontado que agorakeyCode
está obsoleto . A próxima melhor alternativa which
tem também foi preterido .
Infelizmente, o padrão preferido key
, que é amplamente suportado por navegadores modernos, tem algum comportamento desonesto no IE e no Edge . Qualquer coisa mais antiga que o IE11 ainda precisaria de um polyfill .
Além disso, enquanto o aviso deprecated é bastante sinistra sobre keyCode
e which
, retirando aqueles que representaria uma alteração de quebra enorme para um número incontável de sites legados. Por esse motivo, é improvável que eles cheguem a algum lugar em breve.