javascript - 有没有一种方法可以识别何时使用 jQuery 将文本拖放到输入元素中?

标签 javascript jquery html

通常,当一段标记的文本被拖放到 HTML 输入元素中时,标记的文本会被复制到该输入字段中的光标位置(并添加到任何现有文本)。我想使用 jQuery 更改该行为,使其类似于(例如)Firefox 地址字段的行为,即:

  • 可以通过键入(像往常一样)添加和修改文本。
  • 当文本从外部拖放到输入元素中时,输入中的所有现有文本都将被拖动的文本替换。
  • 在输入字段中拖放文本时,拖动的文本会移动到光标所在的位置。 (不错的功能,但不是那么重要)

有人知道实现这个的方法吗?感谢您的帮助。

在我看来,为此,我需要识别某种“拖放”事件并访问被拖动的文本,尽管我不知道这是否可能。我想到的场景的(非功能性)模型如下所示:

HTML:

<p>drag-and-drop text into this:</p>
<input id="giveittome" value="some text"></input>
<p>other text</p>
<p>more text</p>
<p>whatever</p>

JavaScript:

$('#giveittome').on('drag-and-drop' , function (event) {
    $(this).val(event.getDraggedText());
});

source @ jsFiddle .

最佳答案

试试这个:(它适用于大多数现代浏览器)

$('input').on('keydown change paste drop',function(event) {
    var _this = this;
    setTimeout(function() {
        console.log(_this.value, event.type);
    }, 0); //this timeout is necessary  to get the value
});

fiddle :http://jsfiddle.net/maniator/7skY7/

关于javascript - 有没有一种方法可以识别何时使用 jQuery 将文本拖放到输入元素中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423514/

相关文章:

javascript - 如何从客户端javascript调用 Node 函数? (HTML)

javascript - 我想用取自同一页面的变量填充页面中的文本字段

javascript - 在 AngularJS 中使用自定义指令和 $scope 之间的紧密耦合是一个好习惯吗?

javascript - 在 jquery 中将 Map<String,String> 转换为数组

javascript - 使用切换按钮 Bootstrap 更改语言

javascript - 使用 php session 的事件 session 中菜单列表的方法

mysql - mysql值字段中的html标签,对吗?

javascript - 为 Restful Web 服务构建 JSON 配置的正确方法

jquery - iPad/移动版 Safari : div fixed in one direction

javascript - 动态为按钮添加点击功能