我的JS检查我的textarea上是否存在youtube链接。我将URL发送到一个PHP文件,该文件将URL回送给JS,并附加结果。
我遇到的问题,在我的案例中打印(或追加)了返回的数据,两次。
如果我在我的textarea中输入youtube链接http://www.youtube.com/watch?v=iol0B-clFFM
,我会将此链接发送到状态为200 OK
的 getyoutube.php
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 :(得分:0)
当您使用keyup
事件时,即使在释放 Ctrl 时,也会在每个键盘动作时触发一个事件。请改用keypress
。
如果您想在input
粘贴某些文字时触发事件,请使用paste
事件。