2013-10-27 35 views
0

好的..我有一個輸入框可以捕獲paste事件並檢查粘貼的文本/字符串是否爲youtube url。如果是,它會轉發數據到一些PHP處理..正在這裏顯示$('.printdata').append(response);當檢測到某個條件/事件時執行onChange jQuery

關注

結果JSON數據:

  1. 什麼,我沒有在我的代碼,就是要識別整個文字或 的youtube鏈接是否被刪除/剪切/刪除。它也應該刪除 顯示的數據。

  2. 接受第一個youtube網址,如果找到多個youtube網址,發送第一個鏈接到PHP,然後忽略其他鏈接,只顯示爲文本。

我的解決方法

  1. 什麼即時通訊思想(壽不知道)是把一些onchange()事件 某處識別$("$input")元素正在被改變。

  2. 只接受一個paste事件,如果paste()重複,則忽略。 - 不確定這是否是正確的方法。

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

測試什麼即時試圖解釋,在輸入文本字段的任何YouTube網址,並且它應該顯示的東西。

然後刪除網址,數據依然存在。或者連續添加另一個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); 
     });  
    } 
}); 

回答

1

我不知道我正確理解你的問題,但我猜你的結果堆疊和沒有得到更換,你可以使用的.html(響應),而不是.append(響應)停止堆積。

+0

從未想過'.html(response)',所以多數民衆贊成在..謝謝:)。我的另一個問題是,我如何檢查粘貼的數據是否仍然存在於我的輸入框中。如果不是,它應該刪除/刪除'.html(響應)'。嘗試這個小提琴http://jsfiddle.net/8Pvr4/4/(粘貼一個YouTube鏈接,然後刪除它,結果仍然顯示)我想要的,只要鏈接被刪除,它應該顯示內容 – bobbyjones

+0

查看此[Fiddle](http://jsfiddle.net/KLNaS/)。希望能幫助到你。 –