Как остановить обновление текстового поля html при вводе? - PullRequest
0 голосов
/ 02 января 2012

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

<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 ]

2 голосов
/ 02 января 2012
$(document).keyup(function (e) {
  if (e.keyCode == 13) { // enter
    Search();
    return false; //you can also say e.preventDefault();
  }
});
1 голос
/ 02 января 2012

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

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

$(document).keyup(function (e) {
    if (e.keyCode == 13) { // enter
        e.stopPropagation();
        Search();
    }
})
1 голос
/ 02 января 2012

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

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

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

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

$('#Text1').keyup();
0 голосов
/ 15 апреля 2013

Я ответил здесь. https://stackoverflow.com/a/16016122/1047337 Речь идет о наличии только одного текстового поля в форме.

...