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 и т.д. Как это поправить? |
Судя по коду по каждому Ctrl+Enter отправляется запрос. А ответ добавляется в начало all_crm. Что именно не устраивает из перечисленных действий?
|
Верно, по каждому keydown отправляется запрос. - Это работает.
Ответ, добавляется в начало div - все ок. Но при первом запросе приходит один ответ, при втором два. Например: Отправляю запрос получаю: привет мир Отправляю второй раз, получаю привет мир привет мир привет мир Почему так? |
Officeoff.ru,
проверить сколько запросов на самом деле уходит |
Потому что keydown сработать может сколько угодно раз, всё зависит от времени её зажатия. Как вариант, поменять keydown на keypress.
|
при keypress, вообще не отправляет...
|
Решил попробовать повесить на клик
$("#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); } }); }); Та же самая ерунда... |
Видимо лимит подсказок закончился??? )))
|
Officeoff.ru,
Нужно смотреть в браузерном дебаггере, сколько запросов уходит, вывод в лог понавтыкать везде, смотреть какой ответ пришел от сервера, и т.д. А то пока говорить не о чем. |
Потратил целый вечер, чтобы выяснить, что за фигня происходит... Так и не понял :(
Но вышел из ситуации таким образом: 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); } }); } |
Часовой пояс GMT +3, время: 10:24. |