基本上,我想创建动态下拉菜单,如果用户选择一个选项,它将进入下拉菜单,稍后用户可以通过单击“删除”按钮将其删除,然后该选项又回到下拉菜单。我已经创建了,如果用户选择一个选项,它将进入下拉菜单。另外,我已经弄清楚了如何删除相同的选项。我开始遇到问题的地方:

1)在用户单击删除按钮后,我不知道如何在下拉菜单中添加相同的选项
2)如果选择了多个选项,则会将多个选项添加回下拉列表。

这是我的代码和jsfiddle:
https://jsfiddle.net/wjybpLuk/



    $('#dropdown_test').click(function() {
      if ($(this)[0].selectedIndex == 0) {
        //do nothing
      } else {
        $("#selected_options").append('<div class="selected_lang">' + $('option:selected', this).val() + ' <a class="remove_lang" href="javascript:(0)">Remove</a>' + "; " + '</div>');
        $('option:selected', this).remove();
        $("#dropdown_test").val($("#dropdown_test option:first").val());
      }

      $('.remove_lang').click(function() {
        $(this).closest('.selected_lang').remove('.selected_lang');

        $('#dropdown_test').append('<option>' + $('.selected_lang', this).html() + '</option>');
      });
    });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<form>
  <label for="dropdown_test">Select me</label>
  <select id="dropdown_test">
    <option selected disabled value="default">Select...</option>
    <option value="lang01">lang01</option>
    <option value="lang02">lang02</option>
    <option value="lang03">lang03</option>
    <option value="lang04">lang04</option>
  </select>
  <div id="selected_options">

  </div>
</form>

最佳答案

校验
Fiddle

您必须使用委托事件绑定

$(document).on('click','.remove_lang',function(e) { }

使用e.preventDefault()作为当前代码提交表单。

09-25 18:59
查看更多