javascript - 在 javascript 中选择操作

标签 javascript jquery html css

我有以下问题:

1) 我有包含一些汽车名称的 DropDown1

2) 我的 DropDown2 有两个值:

在 DropDown2 中,选择每个值时应发生以下情况:

a) 在选择 UserInput 时,左侧的多选框应该被隐藏,并且在同一个地方,应该出现一个文本框。用户可以在文本框中写入任何汽车名称,然后使用从左到右的按钮将该值移动到右侧选择框。在这种情况下,应禁用从右到左的按钮。

b) 选择 AutoPopulate 时,多选框应出现在左侧与文本框相同的位置,文本框应被隐藏。多选框应使用 DropDown1 中的汽车列表进行填充。用户应该能够从左到右和从右到左选择和移动汽车。

我是 Javascript 新手。有人可以帮我解决这个问题吗?

JSFiddle

$(function(){
    $("#button1").click(function(){
        $("#list1 > option:selected").each(function(){
            $(this).remove().appendTo("#list2");
        });
    });
    
    $("#button2").click(function(){
        $("#list2 > option:selected").each(function(){
            $(this).remove().appendTo("#list1");
        });
    });
});
 .bloc { display:inline-block; vertical-align:top; overflow:hidden; border:solid grey 1px; width:100px;}
 .bloc select { padding:10px; margin:-5px -20px -5px -5px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
DropDown1:
<select id="DropDown1" name="DropDown1">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
<br><br>
DropDown2:
<select id="DropDown2" name="DropDown2">
  <option value="">-- Select --</option>
  <option value="oneUsrInput">User Input</option>
  <option value="twoAutoPopulate">Auto Populate</option>
</select>
<br><br>
<input type="text" id="TextBoxId" name="TextBoxId">
<div class="bloc">     
    <select id="list1" multiple="multiple" rows=2>
        <option value=1>Option 1</option>
        <option value=2>Option 2</option>
        <option value=3>Option 3</option>
        <option value=4>Option 4</option>
        <option value=5>Option 5</option>
        <option value=6>Option 6</option>
    </select>
   </div>
 <div style="display:inline-block;">
    <input id="button1" type="button" value=">>" />
    <br/>
    <input id="button2" type="button" value="<<" />
 </div>
<div class="bloc">
    <select id="list2" multiple="multiple" rows=2>        
    </select>   
</div>

最佳答案

更精确的代码:

$(function() {
  var value = 100;
  $("#button1").click(function() {
    if ($("#DropDown2").val() == "oneUsrInput") {
      console.log();
      $("<option value=" + (value++) + ">" + $("#TextBoxId").val() + "</option>").appendTo("#list2");
    } else if ($("#DropDown2").val() == "twoAutoPopulate") {
      $("#list1 > option:selected").each(function() {
        $(this).remove().appendTo("#list2");
      });
    }
  });

  $("#button2").click(function() {
    $("#list2 > option:selected").each(function() {
      $(this).remove().appendTo("#list1");
    });
  });
  $("#DropDown2").on('change', function() {
    if ($("#DropDown2").val() == "oneUsrInput") {
      $("#TextBoxId").show();
      $("#list1").parent().hide();
    } else if ($("#DropDown2").val() == "twoAutoPopulate") {
      $("#TextBoxId").hide();
      $("#list1").parent().show();
    }
  })
});

您需要更多帮助吗?或者你可以继续吗?

JSFIDDLE

关于javascript - 在 javascript 中选择操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37237631/

相关文章:

javascript - 使用相同变量的 Angular 多重 ng-hide

Javascript:在数据库字段中查找星号

jquery - 将数据属性与 jquery 验证一起使用

javascript - 为什么我的过渡动画在关闭 div 时出现故障?

html - 使用不同屏幕尺寸的 Canvas

javascript - 如何将多个结果返回到数组中?

javascript - Firebase 存储规则经过身份验证的用户的专用 URL(不含 downloadURL 或库)

javascript - 对同一个 id 执行相同的操作,如何简化?

html - 根据条件更改 Angular 中的元素文本

javascript - 使用 Javascript 获取当前浏览器并在 HTML 上打印