Как остановить обновление текстового поля html при вводе?

Я просто хочу спросить, как я могу остановить обновление моего текстового поля HTML, когда я нажимаю Enter.

<div id="topSearchBox">
   <input id="Text1" type="text" value="search..."/>
   <img id="topSearchBoxIcon" alt="search buttom" src="~Images/Search-32x32.png" width="18px" height="18px" />
</div>

У меня есть скрипт, который говорит ему сделать что-то еще, но после того, как скрипт завершен, он обновляет страницу в любом случае.

$(document).keyup(function (e) {
        if (e.keyCode == 13) { // enter
            Search();
        }
    });

Я немного читал об этом, но, похоже, ничего не работает.

4 ответа

Решение

Возвратите false в событии, чтобы прекратить событие по умолчанию (отправить). Это предполагает, что событие отправки запускается.

$(document).keyup(function (e) {
    if (e.keyCode == 13) { // enter
        Search();
        return false; //this will stop the default event triggering 
    }
});

Вы также можете поместить его вне формы (если он внутри).

Примечание. Кроме того, лучше, если вы связываете событие непосредственно со своим вводом.

$('#Text1').keyup();
$(document).keyup(function (e) {
  if (e.keyCode == 13) { // enter
    Search();
    return false; //you can also say e.preventDefault();
  }
});

Если я правильно понял, возможно, страница обновлена, потому что у вас может быть кнопка ввода ввода (или кнопка) после в текстовое поле ввода, поэтому, когда вы нажимаете клавишу ввода, вы также отправляете саму форму.

попытаться остановить распространение события с

$(document).keyup(function (e) {
    if (e.keyCode == 13) { // enter
        e.stopPropagation();
        Search();
    }
})

Я ответил на это здесь. /questions/10204739/ostanovit-obnovlenie-stranitsyi-pri-nazhatii-vvod-v-elemente-vvoda-teksta/10204742#10204742 Речь идет о наличии только одного текстового поля в форме.

Другие вопросы по тегам