Jump to content

Archived

This topic is now archived and is closed to further replies.

dj.drezyna

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

Recommended Posts

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>

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

×
×
  • Create New...