2011-06-10 46 views
4

我有一個帶有文本輸入框的網頁表單。當我從瀏覽器中拖動一個url(我使用firefox,但如果可能,我希望它可以在其他人中使用)地址欄到輸入框中時,它會將url文本插入到任何預先存在的文本中。我想要url來覆蓋任何現有的文字。如何捕獲放在輸入框上的URL的事件

我想我可以捕獲一些事件並在添加刪除的文本之前緩解任何現有文本。

如果可以使用jQuery設置好,否則使用簡單的javascript。

編輯

這似乎工作:

$("#myinput").bind("drop", function(e) { 
     e.currentTarget.value = ""; 
     return true; 
}); 

我不知道是什麼瀏覽器都支持這個活動,但是,如果它是最現代的,那麼它應該被罰款。

回答

0

如果你是針對IE,火狐3.5及更高版本,Safari或Chrome瀏覽器時,ondrop事件應該工作。您可以使用Dr.Molle提供的表單,也可以使用javascript設置ondrop處理程序。

//for ie must use this syntax or the html version 
document.getElementById('myInput').ondrop = function(e){ 
    //doesn't have to be jquery here 
    //using window.location because I can't test e.dataTransfer.getData('Text') right now 
    $(this).val(window.location); 
} 
+0

請注意,這隻能用於顯式獲取window.location。如果您想用拖動文本的內容進行替換,請查看事件dataTransfer對象。 – joekarl 2011-06-10 21:28:18

+0

這似乎工作: $(「#myinput」)。bind(「drop」,function(e){ e.currentTarget.value =「」; return true; }); – tukra 2011-06-10 21:42:22

0

有一個ondrop事件觸發:

<input ondrop="this.value=''"> 
+0

這不是跨瀏覽器。 – Matt 2011-06-10 21:06:44

+0

它不適用於我(Firefox 4)。 – 2011-06-10 21:14:55

+0

所以我必須有一個非常特殊的FF版本,因爲它適用於我(4.0.1) – 2011-06-10 21:26:36

相關問題