这是我的解决方案:
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#div1, #div2
{float:left; width:100px; height:150px; margin:10px;padding:10px;border:1px solid #aaaaaa;}
</style>
<script>
function allowDrop(ev)
{
ev.preventDefault();
}
function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
function sort(uList)
{
var listItem = document.getElementById(uList).getElementsByTagName('li');
var listLength = listItem.length;
var list = [];
for(var i=0; i<listLength; i++)
list[i] = listItem[i].firstChild.nodeValue;
list.sort();
for(var i=0; i<listLength; i++)
listItem[i].firstChild.nodeValue = list[i];
}
</script>
</head>
<body>
<ul id="div1" ondrop="drop(event)" ondragover="allowDrop(event)" ondragend="sort('div1')">
<li id="list-item3" draggable="true" ondragstart="drag(event)">a</li>
<li id="list-item5" draggable="true" ondragstart="drag(event)">b</li>
<li id="list-item2" draggable="true" ondragstart="drag(event)">c</li>
<li id="list-item4" draggable="true" ondragstart="drag(event)">d</li>
</ul>
<ul id="div2" ondrop="drop(event)" ondragover="allowDrop(event)" ondragend="sort('div2')"></ul>
</body>
</html>
我希望它有所帮助:)。我在上面使用了 HTML 5。将一个项目从一个列表拖到另一个列表后,将调用函数 sort()。此函数将用于对列表中的项目进行排序。我还没有在表单元素上尝试过,但我不知道我能做什么。