首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML拖放问题

HTML拖放问题
EN

Stack Overflow用户
提问于 2016-07-13 21:02:47
回答 0查看 277关注 0票数 0

我正在尝试制作一个html表单元素,使用户可以将四件事放在他们的顺序中。例如,我想问一个用户他们最喜欢的动物是什么,然后把它整理好。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<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));
    updateOrder(ev.target.id);

}

function updateOrder(id) {
  var w = document.getElementById(id);
  for (var i = 0; i < w.childNodes.length; i++) {
    var node = w.childNodes[i];
     document.getElementById('order-'+i).value=node.id;
  }
}
</script>
</head>
<body>

<div class="container">
  <h2>Vertical (basic) form</h2>
  <form role="form">
    <div class="form-group">
      <label for="order">Put in order:</label>
      <input type="hidden" name="order-1" id="order-0" value="">
      <input type="hidden" name="order-2" id="order-1" value="">
      <input type="hidden" name="order-3" id="order-2" value="">
      <input type="hidden" name="order-4" id="order-3" value="">
<div style="border: 1px dashed #ddd; padding: 0.5em; min-height: 2em; margin-bottom: 4px;" ondrop="drop(event)" ondragover="allowDrop(event)" id="drop-from" placeholder="Pak hier de opties">
<div draggable="true" ondragstart="drag(event)" style="float: left;" id="option-1" class="label label-default">Optie 1</div>
<div draggable="true" ondragstart="drag(event)" style="float: left;" id="option-2" class="label label-default">Optie 2</div>
<div draggable="true" ondragstart="drag(event)" style="float: left;" id="option-3" class="label label-default">Optie 3</div>
<div draggable="true" ondragstart="drag(event)" style="float: left;" id="option-4" class="label label-default">Optie 4</div>
</div>
<div class="form-control" ondrop="drop(event)" ondragover="allowDrop(event)" id="drop-form" placeholder="sleep ze in de juiste volgorde hier naartoe"></div>
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
  </form>
</div>

</body>
</html>

现在我的问题是,当我想要重新排列被删除的元素时,特别是当您将示例#option-1放到#option 2上时,我会得到意想不到的输出。它不是将#option-1移到#option-2之后,而是将#option-1放在#option-2中,并且隐藏的输入字段会得到奇怪的值。有谁能帮帮我吗?

EN

回答

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

https://stackoverflow.com/questions/38352559

复制
相关文章

相似问题

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