if(characterCode == 13)
{
return false; // returning false will prevent the event from bubbling up.
}
else
{
return true;
}
Ok, więc wyobraź sobie, że masz następujące pole tekstowe w formularzu:
<input id="scriptBox" type="text" onkeypress="return runScript(event)" />
Aby uruchomić skrypt „zdefiniowany przez użytkownika” z tego pola tekstowego po naciśnięciu klawisza Enter i nie wysyłać formularza, oto przykładowy kod. Pamiętaj, że ta funkcja nie sprawdza błędów i najprawdopodobniej będzie działać tylko w IE. Aby zrobić to dobrze, potrzebujesz bardziej niezawodnego rozwiązania, ale uzyskasz ogólny pomysł.
function runScript(e) {
//See notes about 'which' and 'key'
if (e.keyCode == 13) {
var tb = document.getElementById("scriptBox");
eval(tb.value);
return false;
}
}
zwrócenie wartości funkcji ostrzega moduł obsługi zdarzeń, aby nie powodował dalszego blokowania zdarzenia i uniemożliwi dalszą obsługę zdarzenia naciśnięcia klawisza.
UWAGA:
Podkreślono, że obecniekeyCode
jest przestarzałe . Następnego najlepszą alternatywą which
jest również przestarzała .
Niestety ulubiony standard key
, który jest powszechnie obsługiwany przez nowoczesne przeglądarki, ma pewne podejrzane zachowanie w IE i Edge . Wszystko starsze niż IE11 nadal wymagałoby wypełniania .
Co więcej, choć przestarzałe ostrzeżenie jest dość złowieszcze, keyCode
a which
usunięcie ich stanowiłoby ogromną przełomową zmianę w nieopowiedzianej liczbie starszych witryn. Z tego powodu jest mało prawdopodobne, że w najbliższym czasie pójdą gdziekolwiek.