Как реализовать поиск текстового поля как в стеке переполнения сайта? - PullRequest
0 голосов
/ 16 сентября 2010

У меня есть текстовое поле поиска на веб-странице.Когда пользователь нажимает клавишу ввода после ввода текста в это текстовое поле, тогда должна выполняться функция поиска.Как это сделать?

Ответы [ 5 ]

1 голос
/ 16 сентября 2010

Проверьте это событие onkeypress и найдите код клавиши 13. После того, как код клавиши 13 нажал, нажмите скрытую кнопку и запрограммируйте на заднем конце события этой скрытой кнопки.

0 голосов
/ 17 сентября 2010

Я реализовал эту функцию очень легко! У меня есть текстовое поле поиска и кнопка с style ="display:none". Эти элементы управления окружены панелью ASP, в качестве идентификатора кнопки я установил свойство панели DefaultButton. Теперь при вводе текста и нажатии клавиши ввода выполняется функция поиска, присутствующая в событии нажатия кнопки, а также кнопка также не видна пользователю !!!

0 голосов
/ 16 сентября 2010

в основном вы можете сделать это так: мне нравится использовать jquery для большинства javascript для совместимости с разными браузерами

$("#btnID").keypress(function(event){
            //filter enter key only
            if(event.keyCode == 13){
                //do something here
            }
            return true;
        });
0 голосов
/ 16 сентября 2010

Если в форме есть только одно поле ввода, то форма будет отправлена ​​при нажатии клавиши ввода, даже если кнопки «Отправить» нет.

например,

<form action="/search">
    <input type="text" value="search text">
</form>

будет отправлено, когданажата кнопка ввода.

0 голосов
/ 16 сентября 2010

Если это единственное текстовое поле в вашей форме, то нажатие клавиши ввода приводит к запуску обработчика onsubmit. Но это представит всю страницу. Если вы хотите выполнить команду ajax onsubmit и не обновить всю страницу, убедитесь, что ваш обработчик onsubmit возвращает false.

Для отправки обычной полной страницы формы при нажатии Enter:

  <form action="/doit">
     <input type="text" value=""/>
  </form>

Для отправки формы ajax при нажатии Enter можно использовать что-то вроде этого кода jquery:

  $("form").submit(function() {
     $.ajax(...);
     return false;
   });
...