код странно отрабатывает комбинацию клавиш
в общем есть такой код
$(document).keypress(function (e) { if (e.which == 13 && e.ctrlKey ) send_message(); if (e.which == 13 ) send_message(); }); функция send_message(); выглядит так function send_message(){ if ($('#message').val() == '') { $.gritter.add({ title: 'Ошибочка вышла!', image: 'images/i/edit-64.png', //sticky: true, time: '3000', text: 'Сообщение то не ввели.' }); } else { дальнейший код.... } то есть идет проверка на ввод сообщения, и в общем если запускать так $('#send_message_button').click(function(){ send_message(); }); то все работает как надо или если просто нажать ентер то тоже отрабатывает как надо, а вот если комбинацией например ктрл+ентер или шифт + ентер, то и код if`a отрабатывается и else, если же не ввести сообщение то есть действительно сделать $('#message').val() == '' тогда два раза отработает if и раз else на всякий случай оговорюсь, использую jquery P.S. я уже не че не понимаю надеюсь на вашу помощь и надеюсь вы поняли что за белиберду я тут написал |
Не очень понял вопрос, но здесь:
$(document).keypress(function (e) { if (e.which == 13 && e.ctrlKey ) send_message(); if (e.which == 13 ) send_message(); }); В случае если нажато ctrl+enter функция send_message() запускается дважды. |
наверное в этом и ошибка, а почему дважды и как поправить?
|
$(document).keypress(function (e) { if (e.which == 13 && e.ctrlKey ) send_message(); else if (e.which == 13 ) send_message(); }); или $(document).keypress(function (e) { if ((e.which == 13 && e.ctrlKey) || e.which == 13) send_message(); }); |
спасибо!
|
Часовой пояс GMT +3, время: 07:11. |