Подтвердить что ты не робот

Остановите перезагрузку страницы с помощью "Enter Key"

У меня есть окно поиска в верхней части страницы, которое вызывает вызов ajax, когда пользователь нажимает соседнюю кнопку. Я пытаюсь обновить тег ввода, так что, когда пользователь нажимает клавишу 'enter', соответствующий JavaScript выполняется без перезагрузки страницы. Проблема в том, что страница продолжает перезагружать. Вот моя последняя попытка:

$("searchText").bind('keyup', function(event){ 
  if(event.keyCode == 13){ 
    event.preventDefault();
    $("#buttonSrch").click(); 
    return false;
  }
});

<input type='search' id='searchText' />
<input type='button' id='buttonSrch' onclick="search(document.getElementById('searchText'))" value='Search' />
4b9b3361

Ответ 1

Не привязывайтесь к input s; привяжите к form. Предполагая, что form имеет идентификатор searchForm:

$("#searchForm").submit(function() {
    search($("#searchText").get(0));
    return false;
});

Попробуйте.

Это также можно сделать с помощью обычного JavaScript:

document.getElementById('searchForm').addEventListener('submit', function(e) {
    search(document.getElementById('searchText'));
    e.preventDefault();
}, false);

Ответ 2

Вам не хватает # в селекторе. Попробуйте это

<input type='text' id='searchText' />

JS

$("#searchText").bind('keyup', function(event){ 
  if(event.keyCode == 13){ 
    event.preventDefault();
    //$("#buttonSrch").click(); 
    search(this.value);
  }
});

Ответ 3

Я знаю его немного поздно, но я столкнулся с той же проблемой, что и вы. Он работал у меня, используя "keypress" вместо bind.

$('#searchText').keypress(function (e) {                                       
       if (e.which == 13) {
            e.preventDefault();
            //do something   
       }
});

Ответ 4

 $('#seachForm').submit(function(e){
      e.preventDefault();
      //do something
 });

Ответ 5

Вы можете установить атрибут action для javascript: void (0); таким образом форма не публикует/не получает, чтобы страница не обновлялась.

$(document).ready(function () {
  $('#form1').attr('action', 'javascript:void(0);');
});

Ответ 6

Добавьте onSubmit="return false;" в свой тег формы

<form onSubmit="return false;">
/* form elements here */
</form>`

Ответ 7

Выполняется ли ваша JS немедленно или на документе? Если он не готов в документе, кнопка не будет существовать во время вызова bind.

Ответ 8

Это то, что в конечном итоге работает для меня. Обратите внимание, что моя борьба заключалась в том, чтобы найти объект, который вызвал форму submit:

$('#missingStaff').submit(function (e) {
e.preventDefault();
var comment = $(document.activeElement)[0];
submitComments(comment);

});

Ответ 9

Просто используйте атрибут action в теге <form>. Как этот

<form action="#">   // your content     </form>