Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2011, 02:19
ffx ffx вне форума
Аспирант
Отправить личное сообщение для ffx Посмотреть профиль Найти все сообщения от ffx
 
Регистрация: 29.09.2008
Сообщений: 48

код странно отрабатывает комбинацию клавиш
в общем есть такой код
$(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. я уже не че не понимаю надеюсь на вашу помощь и надеюсь вы поняли что за белиберду я тут написал
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2011, 02:45
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,576

Не очень понял вопрос, но здесь:
$(document).keypress(function (e) {
				if (e.which == 13 && e.ctrlKey ) send_message();
				if (e.which == 13  ) send_message();
			});

В случае если нажато ctrl+enter функция send_message() запускается дважды.
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2011, 10:32
ffx ffx вне форума
Аспирант
Отправить личное сообщение для ffx Посмотреть профиль Найти все сообщения от ffx
 
Регистрация: 29.09.2008
Сообщений: 48

наверное в этом и ошибка, а почему дважды и как поправить?
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2011, 10:49
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

$(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();
			});

Последний раз редактировалось Vulkan, 20.01.2011 в 10:52.
Ответить с цитированием
  #5 (permalink)  
Старый 20.01.2011, 10:58
ffx ffx вне форума
Аспирант
Отправить личное сообщение для ffx Посмотреть профиль Найти все сообщения от ffx
 
Регистрация: 29.09.2008
Сообщений: 48

спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как послать комбинацию клавиш во всплывающее окно? alexlp Общие вопросы Javascript 3 03.12.2010 14:01
Opera отдаёт неправильный код функциональных клавиш. NT Man Opera, Safari и др. 1 19.01.2010 02:45