мой 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-адресом, и это ответ, который я получаю от него.
этот результат будет получен 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
зацикливается дважды? не знаю почему.
Когда вы используете событие keyup
событие, если оно срабатывает при каждом нажатии клавиши, даже при отпускании Ctrl. Вместо этого используйте keypress
.
Если вы хотите запустить событие, когда какой-либо текст вставлен в ваш input
, используйте событие paste
.