首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法可以识别文本何时被拖放到使用jQuery的输入元素中?

是否有一种方法可以识别文本何时被拖放到使用jQuery的输入元素中?
EN

Stack Overflow用户
提问于 2013-05-07 15:58:06
回答 1查看 280关注 0票数 4

通常,当一个标记的文本被拖放到HTML输入元素中时,标记的文本会在该输入字段中的游标位置(并添加到任何现有文本)进行复制。我想用jQuery改变这种行为,使之类似于(例如)的行为。Firefox address字段,即:

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

有谁知道实现这一目标的方法吗?任何帮助都是非常感谢的。

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

HTML:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
$('#giveittome').on('drag-and-drop' , function (event) {
    $(this).val(event.getDraggedText());
});

source @ jsFiddle

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 16:03:56

试试这个:(它将在大多数现代浏览器中工作)

代码语言:javascript
复制
$('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
});

小提琴:http://jsfiddle.net/maniator/7skY7/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16423514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档