событие нажатия кнопки запускается после нажатия клавиши с помощью jQuery - PullRequest
3 голосов
/ 10 августа 2010

У меня есть эти коды

$('#search-button').keypress(function (e) {
   if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {            
        search();
   };
});

$('#search-button').bind('click', function () {
   search();
});

в модуле поиска. У меня есть предупреждение, теперь, когда я нажимаю Enter, когда кнопка находится в фокусе, поиск () под событием click также запускается.Пожалуйста помоги.Спасибо.

Ответы [ 4 ]

5 голосов
/ 10 августа 2010

Нажатие клавиши ввода запускает событие нажатия клавиши, но также запускает событие нажатия кнопки, поэтому поиск вызывается дважды.

Вам не нужно добавлять обработчик для клавиши ввода.

2 голосов
/ 26 октября 2013
    $(document).ready(function(e) {
$('form').bind('keypress', function(event){
    if(event.keyCode == 13)
    {
    event.preventDefault();
    $("#submitcat").click();
    }
});
$("#submitcat").click(function(){
alert("Ok");    
});
});
1 голос
/ 10 августа 2010

Почему вы помещаете событие keypress на кнопку? Нажатие Enter на нем все равно вызовет событие click. Возможно, вы захотите поместить событие keypress в текстовый ввод или полностью его удалить.

0 голосов
/ 24 апреля 2012
$(document).on('keypress',function(e) {
    if (e.keyCode == 13 || e.which == 13) {
        var identifier = e.target.id;
        console.log(e.target.id);
        $('#' + identifier).click();
    }
});
...