2011-06-10 71 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