jquery - keypress / keydown

0

Witam, mam wręcz absurdalny problem. Task wygląda tak:

Wpisuje do inputa jakieś słowo, po WDUSZENIU przycisku enter na klawiturze zawartośc ma pojawić się niżej, napisałem kilka rozwiazań tego "skryptu" i cały czas po wduszeniu ENTER zawartość pojawia się na dosłownie ułamek sekundy i znika (nie zależnie czy uzyje keypress, down itp)

Tak sobie napisałem proste zdarzenie na kliknięcie i jest ok:

$(document).ready(function () {
  $('#button').click(function() {
    var toAdd = $('input[name=ListItem]').val();
    $('ol').append('<li>' + toAdd + '</li>');
  });

Przykład z guzikiem:

  $('input[name=ListItem]').keydown(function(event) {
    if(event.which == 13) {
      $('ol').append('<li>' + 'ssss' + '</li>');
    };
  });

Jakieś pomysły?

0

Pokaż tu: https://jsfiddle.net/

0
      <form name="toDoList">
        <input type="text" name="ListItem" placeholder="xxx...">
      </form>
0

U mnie działa :) https://jsfiddle.net/wc0vfo97/

więc przypuszczam, że to faktycznie coś związanego ze strukturą HTMLu jaką masz na stronie, skoro sam kod JS działa.

0
<form name="toDoList">
        <input type="text" name="ListItem" placeholder="Add your todo's here...">
      </form>

      <div id="button">Add</div>
    </div>

    <div class="container">
      <h4>Commisioned tasks: </h4>
      <ol>
          <li>Learn C++</li>
      </ol>
    </div>
  $('input[name=ListItem]').keydown(function(event) {
    if(event.which == 13) {
      $('ol').append('<li>' + 'ssss' + '</li>');
    };
  });
1

ponieważ masz to w formularzu, po wciśnięciu enter formularz próbuje się wysłać. Żeby zapobiec domyślnej obsłudze eventa, musisz dodać event.preventDefault();

  $('input[name=ListItem]').keydown(function(event) {
    if(event.which == 13) {
      $('ol').append('<li>' + 'ssss' + '</li>');
      event.preventDefault();
    };
  });

1 użytkowników online, w tym zalogowanych: 0, gości: 1