通常,当将标记的文本拖放到 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());
});