2016-03-07 3 views
0

У меня есть поле ввода на моей странице результатов. Я использовал следующее событие:Кнопка поиска не работает

onkeypress="if (event.keyCode == 13) {document.getElementById('results-search').click()}" 

Проблема заключается в том, что, когда я выполнить поиск, ничего не происходит, когда я нажимаю кнопку поиска. Это не работает, когда я нажимаю или нажимаю клавишу ввода. Это происходит только в Mozilla Firefox и Microsoft Edge, но отлично работает в Google Chrome. Пожалуйста, помогите

+0

Почему '.click()'? Вызовите обработчик клика вместо этого ... – Rayon

+0

Обратите внимание, что результаты отображаются на одной странице и все работает хорошо на хроме, кроме края и firefox. – albertgeorge253

+0

Пожалуйста, не в строгом порядке, ужасная практика. Также, если вы используете JQuery, почему бы не использовать '$ ('# results-search')' как ваш селектор. Кажется немного бессмысленным загрузить его и не использовать. – Novocaine

ответ

1

event.keyCode В некоторых браузерах свойство может не поддерживаться. Попробуйте использовать вместо event.keyCode || event.which:

onkeypress="if ((event.keyCode || event.which) == 13) {document.getElementById('results-search').click()}" 

Если вы используете jQuery это не имеет значения, если вы используете keyCode или which свойство, как они будут работать. Вы добавили тег jquery, но вы не использовали его в своем коде.

BTW. не лучше ли обрабатывать событие кнопки click? По-моему, это выглядело бы более изящным. Также полезно отделить код JavaScript от HTML.

document.getElementById('input-search').onkeypress = function(e) 
{ 
    if ((e.which || e.keyCode) === 13) 
     search(); 
}; 

document.getElementById('results-search').onclick = search; 

function search() 
{ 
    //do something... 
} 
+0

Большое спасибо за ваш ответ, я пробовал, но он все еще не работает. – albertgeorge253

+0

Можете ли вы предложить другую альтернативу? Спасибо – albertgeorge253

+0

Вы изменили идентификатор ввода на id, который используете? «input-search» был только примером. Не показывает ли консоль какая-либо ошибка? Трудно сказать, что случилось, не видя всего кода. –

Смежные вопросы