предотвратить повторную печать возвращаемых данных из PHP JS

0

мой JS проверяет, существует ли ссылка на youtube в моем текстовом поле. Я отправляю URL-адрес в файл PHP, который повторяет URL-адрес обратно в JS и добавляет результат.

проблема с им, возвращенные данные печатаются (или добавляются) в моем случае дважды.

если я напечатал ссылку на youtube http://www.youtube.com/watch?v=iol0B-clFFM в своем текстовом поле, я отправлю эту ссылку на getyoutube.php со статусом 200 OK

Request URL:<website> /getyoutube.php?url=youtube.com/watch?v=iol0B-clFFM
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
X-Requested-With:XMLHttpRequest
Query String Parametersview 
url:youtube.com/watch

PHP файл просто перекликается с URL-адресом, и это ответ, который я получаю от него.

Изображение 174551Изображение 174551


этот результат будет получен JS и добавит этот результат в элемент html. но прилагаемые данные печатаются дважды

[это мой JS]

$(document).ready(function(){   
    var youtube = //regex
    var getUrl = $('#url');

    getUrl.keyup(function() {
      if  (youtube.test(getUrl.val())) {
      var youtube_url = getUrl.val().match(youtube)[0];

      $.post("./includes/getyoutube.php?url="+ youtube_url, {
         }, function(response){
         $('.echotest').append(response);
      });       
      }
}); 

TL;DR: отправлять данные в php файл через POST и эхо-обратно. данные дважды печатаются моей JS.

[Обновить]

Я добавил alert(response) и im получаю 2 предупреждения. один за другим. Кажется, моя success function зацикливается дважды? не знаю почему.

  • 0
    console.log (ответ); ?
  • 1
    Возможно, по какой-то причине keyUp запускается дважды. Сохраните URL и сравните с предыдущим, чтобы убедиться, что он не тот же.
Показать ещё 20 комментариев
Теги:

1 ответ

0

Когда вы используете событие keyup событие, если оно срабатывает при каждом нажатии клавиши, даже при отпускании Ctrl. Вместо этого используйте keypress.

Если вы хотите запустить событие, когда какой-либо текст вставлен в ваш input, используйте событие paste.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню