Mam proste pole tekstowe i typ przycisku na mojej stronie.Naciśnięcie Enter zawsze przesyła formularz
<input id="sText" type="text" />
<input id="sButton" type="button" value="button" />
Przechwytywam kliknięcie przycisku za pomocą jQuery.
$("[id$=sButton]").click(function() {
...do Stuff
});
Powyższy kod działa dobrze, o ile ręcznie kliknę przycisk. Zacząłem napotykać problemy, gdy chciałem użyć klawisza "Enter", aby kliknąć przycisk. Bez względu na to, co robię, nie mogę uniemożliwić klawiaturze Enter wykonywania jej domyślnej funkcji przesyłania.
Pierwszą rzeczą, którą zrobiłem, była zmiana typu wprowadzania danych z "submit" na "button".
Próbowałem ustawienie onSubmit postaci do onsubmit="return false;"
Próbowałem za pomocą jQuery do przechwytywania klawisz Enter zdarzenie:
$("#sText").keyup(function (event) {
if (event.keyCode == 13) {
alert("Enter!");
// $("#sButton").click();
}
});
każdym razem, kiedy nacisnąć klawisz Enter, to jakbym wysłaniu formularza cała strona odświeża się. Powyższy kod jQuery przechwytuje naciśnięcie klawisza "enter", ale formularz nadal przesyła i odświeża stronę.
Nie jestem pewien co się dzieje.
+1 za sugestię keydown –
Oprócz dodania "event.preventDefault()" musiałem również zmienić "keyup" na "keypress", ani keyup, ani keydown nie działały. Dzięki! – SharpBarb
Wygląda na to, że trzymanie klawisza Enter i przycisk jako typ przycisku zamiast przełączania go z powrotem do przesyłki wymaga użycia dużo dodatkowego kodu. –