>好吧.. 我有一个输入框,可以捕获paste
事件并检查粘贴的文本/字符串是否是 YouTube URL。 如果是,它会将数据转发到某个PHP进行处理。
结果 JSON 数据显示在此处$('.printdata').append(response);
关注:
-
我在代码中没有的是识别整个文本或YouTube链接被删除/剪切/删除。它还应该删除显示的数据。
-
接受第一个 youtube URL,如果找到多个 YouTube URL,将第一个链接发送到 PHP,然后忽略其他链接,只需将其显示为文本即可。
我的解决方法
-
我的想法(不确定)是放一些
onchange()
事件在某个地方识别$("$input")
元素正在更改。 -
仅接受单个
paste
事件,如果重复paste()
则忽略。 -不确定这是否是正确的方法。
http://jsfiddle.net/8Pvr4/4/
要测试IM试图解释的内容,请在文本字段中输入任何YouTube URL,它应该显示一些内容。
然后删除 URL,数据仍然存在。或者连续添加另一个 URL。生成的数据将堆叠。
$(document).ready(function() {
//some regex
$("#input").bind('paste', function(e) {
var val = undefined;
//get pasted data
if(window.clipboardData && window.clipboardData.getData) {
val = window.clipboardData.getData('Text');
} else if (e.originalEvent.clipboardData && e.originalEvent.clipboardData.getData){
val = e.originalEvent.clipboardData.getData('text/plain');
}
//check for youtube URL
if (youtube.test(val)) {
var yurl = val.match(youtube)[0];
$.post("youtubejson.php?url="+ yurl, {
}, function(response){
$('.printdata').append(response);
});
}
});
我不确定我是否正确理解了您的问题,但我想您的结果是堆叠而不是被替换,您可以使用 .html(响应) 而不是 .append(response) 停止堆叠。