2013-10-26 55 views
0

我的JS檢查我的textarea上是否存在youtube鏈接。我將URL發送到一個PHP文件,將URL回顯給JS,並附加結果。防止從PHP返回的數據被JS打印兩次

問題im有,返回的數據正在打印(或追加)在我的情況下,兩次

如果我輸入,在我的textarea的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文件只是呼應了網址,並這是我從中得到的迴應。


該結果將被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); 
     });  
     } 
}); 

tldr:將數據發送到通過POST PHP文件,並回該數據。數據由我的JS打印兩次。

[更新]

我添加alert(response)和即時得到2個警報。一個接一個地。看來我的success function正在循環兩次?不知道爲什麼。

+0

console.log(response); ? – underscore

+1

或許keyUp由於某種原因被觸發兩次。存儲網址並與之前進行比較,以確保它不相同。 – Colandus

+0

@samitha我變空了。我應該期待看到什麼數據? – bobbyjones

回答

0

當您使用keyup情況下,如果開槍 KEYUP運動事件,釋放按Ctrl時也是如此。改爲使用keypress

如果您想要在input中粘貼某些文本時觸發事件,請使用paste事件。