Skocz do zawartości
Zaloguj się, aby obserwować  
dj.drezyna

[js] Enter w formularzu, który nie wysyła go

Polecane posty

Mam oto taki kod zamieszczony poniżej. I co mam zrobić by po wciśnięciu przycisku enter formularz nie wysyłał się tylko jak to jest w kodzie, ustawił pole value inputa na 'Wcisnąłem enter...'? Czyli żeby formularz był wysłany ale dopiero po kliknięciu w przycisk wyślij, albo po wciśnięciu entera ale jak nie jest zaznaczone pole inputa typu text.

 

W załączonym przykładzie pokazuję też, że korzystam z zatrzymania propagacji oraz zachowania domyślnego i nie działa to tak jak powinno i jest opisane wyżej.

Kod JS

function zdarzenie() {

var tekst = document.getElementById('tekst');
tekst.onkeyup = function(zda) {
  zda.stopPropagation();
  zda.preventDefault();
  if (zda.keyCode == 13) {
tekst.value = 'Wcisnąłem enter...';
  }
};

}

Kod HTML

<body onload="zdarzenie();">
<form action="./?wyslano=tak" method="get">
<input type="text" name="tekst" id="tekst" />
<input type="submit" value="Wyślij" />
</form>
</body>

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak to już chyba jest, że dopóki nie napiszę posta na tym forum mózg nie wypracuje rozwiązania.

W każdym razie trzeba to zrobić w następujący sposób:

function zdarzenie() {

var tekst = document.getElementById('tekst');
tekst.onkeydown = function(zda) {//zmieniamy z keyup na keydown
   //zda.stopPropagation();//niepotrzebne  
   if (zda.keyCode == 13) {
     zda.preventDefault(); //przenosimy tu
     tekst.value = 'Wcisnąłem enter...';
   }
};

}

Mam nadzieję, że komuś się przyda!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zanim zauważyłem drugi post zacząłem się właśnie zastanawiać czemu to preventDefault() niby nie działa u ciebie :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

×