ドラッグ/ドロップのサポートがブラウザにどのように実装されているかについては多くの議論がありますが、真実は彼らが物事を保護したいということです。理論的にはあなたが呼ぶことができるという意味です
event.dataTransfer.setData("Text", newValue)
ドロップハンドラー内にありますが、「セキュリティ上の理由」のために機能しません。これがあなたにとって最良の解決策だったので、それは残念です。つまり、テキストが削除される前にテキストを変更することを意味します。
代わりに、小さな「ハック」で問題を克服できると思います
<input id="target" type="text" value="aaa bbb ccc" />
<input id="source" type="text" value="good bad" />
およびjs
<script type="text/javascript">
$(function () {
var drop = false;
$("#target").bind("drop", function (e) {
// you can store the dragged text if you like
//var text = e.originalEvent.dataTransfer.getData("Text");
drop = true;
});
$("#target").bind("focus", function (e) {
if (drop) {
// you can get caret here, etc
$("#target").val($("#target").val().replace("bad", ""));
drop = false;
}
});
});
</script>
Chromeでテストされていますが、すべてのブラウザでも機能するはずです。
これがあなたが探していたものであることを願っています。