Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.12.2014, 17:41
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

append или appendTo
Всем, доброго времени суток. Есть кусок кода

$('#text').keydown(function (event) {
		if (event.ctrlKey && event.keyCode == 13) {
		
			var text = $("#text").val();
			var page = "contragent";
			var action = "new_do";
			$.post("/modules/action.php", {text:text, page:page, action:action}, function(data){
				if (data.length>0){
					$("#all_crm").prepend(data); // Вопрос по этой строке
				}
			});
		}
	});


Мне нужно чтобы в начало div all_crm приходил ответ с сервера. Вроде все просто. И первый раз приходит один ответ, в следующий 2, затем 3 и т.д.
Как это поправить?
Ответить с цитированием
  #2 (permalink)  
Старый 25.12.2014, 17:48
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Судя по коду по каждому Ctrl+Enter отправляется запрос. А ответ добавляется в начало all_crm. Что именно не устраивает из перечисленных действий?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 25.12.2014, 17:50
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Верно, по каждому keydown отправляется запрос. - Это работает.
Ответ, добавляется в начало div - все ок.
Но при первом запросе приходит один ответ, при втором два.
Например:
Отправляю запрос получаю:
привет мир
Отправляю второй раз, получаю
привет мир
привет мир
привет мир

Почему так?
Ответить с цитированием
  #4 (permalink)  
Старый 25.12.2014, 18:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Officeoff.ru,
проверить сколько запросов на самом деле уходит
Ответить с цитированием
  #5 (permalink)  
Старый 25.12.2014, 18:28
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Потому что keydown сработать может сколько угодно раз, всё зависит от времени её зажатия. Как вариант, поменять keydown на keypress.
Ответить с цитированием
  #6 (permalink)  
Старый 25.12.2014, 19:14
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

при keypress, вообще не отправляет...
Ответить с цитированием
  #7 (permalink)  
Старый 25.12.2014, 19:44
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Решил попробовать повесить на клик
$("#sub").click(function(e){
		
			var text = $("#text").val();
			var page = "contragent";
			var action = "new_do";
			$.post("/modules/action.php", {text:text, page:page, action:action}, function(data){
				if (data.length>0){
					$("#all_crm").prepend(data);
				}
			});
		});


Та же самая ерунда...
Ответить с цитированием
  #8 (permalink)  
Старый 26.12.2014, 00:01
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Видимо лимит подсказок закончился??? )))
Ответить с цитированием
  #9 (permalink)  
Старый 26.12.2014, 18:01
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Officeoff.ru,
Нужно смотреть в браузерном дебаггере, сколько запросов уходит, вывод в лог понавтыкать везде, смотреть какой ответ пришел от сервера, и т.д.
А то пока говорить не о чем.
Ответить с цитированием
  #10 (permalink)  
Старый 28.12.2014, 21:36
Аспирант
Отправить личное сообщение для Officeoff.ru Посмотреть профиль Найти все сообщения от Officeoff.ru
 
Регистрация: 14.03.2014
Сообщений: 64

Потратил целый вечер, чтобы выяснить, что за фигня происходит... Так и не понял
Но вышел из ситуации таким образом:
function newdo() {
	var message   = $('#newdo').serialize();
	$.ajax({
		type: 'POST',
		url: '/modules/action.php',
		data: message,
		success: function(data) {
			$('#all_crm').prepend(data);
		},
		error:  function(xhr, str){
			alert('Возникла ошибка: ' + xhr.responseCode);
		}
	});
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript чат-бот FanAizu Общие вопросы Javascript 5 30.01.2014 03:00
Найти проблему с jQuery или писать js? Saladdin Элементы интерфейса 0 17.03.2011 17:02
Различия между append и appendTo voooodoo jQuery 2 04.03.2011 22:45
В зависимости от referrer выводить рекламу adsene или зорьки wlad2 Общие вопросы Javascript 12 19.12.2010 01:02
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09