0

好吧..我有一个输入框,可以捕获paste事件并检查粘贴的文本/字符串是否是 youtube url。如果是,它会将数据转发给一些 PHP 进行处理..

结果json数据显示在这里$('.printdata').append(response);

顾虑:

  1. 我的代码中没有的是识别整个文本或 youtube 链接是否被删除/剪切/删除。它还应该删除显示的数据。

  2. 接受第一个 youtube URL,如果找到多个 youtube URL,将第一个链接发送到 PHP,然后忽略其他链接,将其显示为文本。

我的解决方法

  1. 我的想法(不确定)是将一些onchange()事件放在某处以识别$("$input")元素正在被改变。

  2. 只接受一个事件,如果重复paste则忽略。paste()-不确定这是否是正确的方法。

http://jsfiddle.net/8Pvr4/4/

要测试我试图解释的内容,请在文本字段中输入任何 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);
        });     
    }
});
4

1 回答 1

1

我不确定我是否正确理解了您的问题,但我猜您的结果是堆叠而不是被替换,您可以使用 .html(response) 而不是 .append(response) 来停止堆叠。

于 2013-10-28T02:44:40.900 回答