0

我的 JS 检查我的 textarea 上是否存在 youtube 链接。我将 URL 发送到一个 PHP 文件,该文件将 URL 回显到 JS,并附加结果。

我遇到的问题是,在我的情况下,返回的数据被打印(或附加)两次

如果我在我的 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 文件只是回显 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);
      });       
      }
}); 

tldr:通过 POST 将数据发送到 php 文件,并回显数据。我的 JS 打印了两次数据。

[更新]

我添加alert(response)并收到 2 个警报。一个接一个地。看来我success function被循环了两次?不知道为什么。

4

1 回答 1

0

当您使用keyup事件时,如果在每个按键动作上触发一个事件,即使在 release 时也是如此Ctrl。改为使用keypress

如果您想在将某些文本粘贴到 中时触发事件,请input使用该paste事件。

于 2013-10-26T12:52:03.243 回答