javascript - 如何在按钮单击时将填充的选择字段添加到表单中

标签 javascript html django

我有一个表单,用户可以在其中选择一个选项然后提交,我想添加一个按钮,将另一个选择选项添加到表单中。以便用户可以提交两个或多个选项

<form action="#" method="get">
<button type="button" onclick="add_field()">Add another field</button>
<select>
{%for each in mechanic_list %}

  <option name="Mechanic_" value={{each.id}}>{{each.DESCRIPTION}}</option>

  {%endfor%}
  </select>
  <input type="submit" value="Submit">
</form>

<script>    
    function add_field() 
    {
    var form = document.getElementsByTagName('form')[0],
    input = document.createElement('select');

    input.setAttribute('type', 'select');
    input.setAttribute('name', 'pet');
    form.appendChild(input);
    };
    </script>

上面的代码将填充第一个选择框,并有一个添加空选择字段的按钮(在提交之后,由于某种原因)

两个问题 1.如何填充添加的选择字段 2. 如何将新字段移至提交按钮的右侧。

需要注意的一件事是,我正在使用 Django Web 框架并使用 for 循环来填充选择值。

这是一个 JSfiddle http://jsfiddle.net/5Jr8N/59/ (没有for循环)

谢谢

编辑/更新 HTML 脚本编码

<script>    
        function add_field() {
            var container = document.getElementById('selects'),
                input = document.createElement('select');
            var opt = document.createElement("option");
            {% for each in mechanic_list %}
            opt.value = "{{each.id}}";
            opt.innerHTML = "{{each.DESCRIPTION}}";
            {%endfor%}
            input.appendChild(opt);
            input.setAttribute('type', 'select');
            input.setAttribute('name', 'pet');
            container.appendChild(input);
          };
    </script>

html 脚本作为“渲染”(提供给浏览器/从浏览器“查看源代码”)

<script>    
        function add_field() {
            var container = document.getElementById('selects'),
                input = document.createElement('select');
            var opt = document.createElement("option");

            opt.value = "dd";
            opt.innerHTML = "dd";

            opt.value = "TT";
            opt.innerHTML = "Test for";

            input.appendChild(opt);
            input.setAttribute('type', 'select');
            input.setAttribute('name', 'pet');
            container.appendChild(input);
          };
    </script>

所以这是有效的,只是它只显示最后一个值而不是两个/所有值。这太近了,我能尝到它的味道。

如何获取两个/所有值而不仅仅是最后一个值?

最佳答案

“填充添加的选择”是什么意思?

更改新选择字段换行现有位置 <select>进入<span>并将新选择附加到此 <span> 。填充原始 <select> 中的选项只需复制 innerHTML来自它:

<form action="#" method="get">
  <button type="button" onclick="add_field()">Add another field</button>
  <span id="selects">
    <select id="orig_select">
    {% for each in mechanic_list %}
      <option name="Mechanic_" value={{each.id}}>{{each.DESCRIPTION}}</option>
    {%endfor%}
    </select>
  </span>
  <input type="submit" value="Submit">
</form>

<script>    
    function add_field() {
      var container = document.getElementById('selects'),
          input = document.createElement('select');

      input.innerHTML = document.getElementById('orig_select').innerHTML;

      input.setAttribute('type', 'select');
      input.setAttribute('name', 'pet');
      container.appendChild(input);
    };
</script>

关于javascript - 如何在按钮单击时将填充的选择字段添加到表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28077350/

相关文章:

javascript - 将更改应用于 angular.js 中由scope.$apply 获取的模型

javascript - 属性符合我的值(value)

javascript - 如何将 icomoon 图标添加到 Canvas ?

java - 将Python(django)实体类转换为Java的好方法

Django REST框架: How do you get the attributes from a serialized object?

python - django模型获取字段方法

javascript - 掩码 javascript 变量值

javascript - 无法使用 Node 下载 S3 对象

javascript - 在我作为练习创建的这个俄罗斯方 block 游戏中,我的旋转功能似乎正在将包含所有形状的对象更改为旋转。为什么?

javascript - 如何通过 FTP 客户端将单独的 HTML 文件上传到 wordpress 站点?