【问题标题】:How to populate a select box with the selected values of another select box如何用另一个选择框的选定值填充选择框
【发布时间】:2015-06-11 09:05:47
【问题描述】:

我有一个多选 select 框,其值类似于 Object_1、Object_2...Object_10。 当我在选择值后单击一个按钮时,我可以在下面写入选定的值,但我想用这些选定的值填充另一个选择框。

这是我的选择框代码:

  <body style="background-color: azure;" ng-app="app">
    <div id="container" style="padding: 50px 100px 50px 200px; width: 80%" ng-controller="ctrl">
        <div class="block" style="padding: 15px;">
            <h4 class="blockTitle">Rule Builder</h4>
            <br />
            <div class="row">
                <div class="col-md-2">
                    <button class="btn btn-default" id="objct">Show Objects</button>
                    <script>
                        $(document).ready(function(){
                            $('#objct').click(function(){
                                $('#objList').show();
                            })                            
                        })
                    </script>
                </div>
                <div class="col-md-5" id="objList" style="display: none;height: auto; width: 200px;" >
                    <select class="SlectBox" size="8" multiple="multiple" title="Select objects">
                        <option value="Object_1">Object 1</option>
                        <option value="Object_2">Object 2</option>
                        <option value="Object_3">Object 3</option>
                        <option value="Object_4">Object 4</option>
                        <option value="Object_5">Object 5</option>
                        <option value="Object_6">Object 6</option>
                        <option value="Object_7">Object 7</option>
                        <option value="Object_8">Object 8</option>
                        <option value="Object_9">Object 9</option>
                        <option value="Object_10">Object 10</option>
                        <option value="Object_11">Object 11</option>
                    </select>
                    <br />
                    <br />
                    <button id="close" class="btn btn-default" style="float: right">OK</button>
                </div>
            </div>
            <br /><br />
            <p id="list"></p>
            <script type="text/javascript">
                $(function () {
                    $('#SlectBox').multiselect({
                        includeSelectAllOption: true
                    });
                    $('#close').click(function(){
                        var objs = [];
                        $.each($(".SlectBox option:selected"), function(){            
                            objs.push($(this).val());
                        });
                        $( '#list' ).html(objs.join(", "));
                    });
                });
            </script>
            <br /><hr /><br />
            <select id="selctObjs" multiple="multiple" size="1">
                //Here I want to populate the list
            </select>
            <br /><br />
            <br /><br />
        </div>
    </div>
</body>

我在带有class="SlectBox" 的选择框中选择的内容应该在带有id="selctObjs" 的选择框中填充。

谁能帮帮我?

【问题讨论】:

    标签: javascript jquery html drop-down-menu


    【解决方案1】:

    试试这个:

        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <body style="background-color: azure;" ng-app="app">
        <div id="container" style="padding: 50px 100px 50px 200px; width: 80%" ng-controller="ctrl">
            <div class="block" style="padding: 15px;">
                <h4 class="blockTitle">Rule Builder</h4>
                <br />
                <div class="row">
                    <div class="col-md-2">
                        <button class="btn btn-default" id="objct">Show Objects</button>
                    </div>
                    <div class="col-md-5" id="objList" style="height: auto; width: 200px;" >
                        <select class="SlectBox" size="8" multiple="multiple" title="Select objects">
                            <option value="Object_1">Object 1</option>
                            <option value="Object_2">Object 2</option>
                            <option value="Object_3">Object 3</option>
                            <option value="Object_4">Object 4</option>
                            <option value="Object_5">Object 5</option>
                            <option value="Object_6">Object 6</option>
                            <option value="Object_7">Object 7</option>
                            <option value="Object_8">Object 8</option>
                            <option value="Object_9">Object 9</option>
                            <option value="Object_10">Object 10</option>
                            <option value="Object_11">Object 11</option>
                        </select>
                        <br />
                        <br />
                        <button id="close" class="btn btn-default" style="float: right">OK</button>
                    </div>
                </div>
                <br /><br />
                <p id="list"></p>
                <script type="text/javascript">
                    $(function () {
                        $('#objList').hide();
                        $('#objct').click(function(){
    
                            $('#objList').show();
                        }) 
    
    
                        $('#close').click(function(){
                            var objs = [];
                            var html = '';
                            $.each($(".SlectBox option:selected"), function(){            
                                objs.push($(this).val());
                                html += '<option value="'+$(this).val()+'">'+$(this).html()+'</option>';
                            });
                            $( '#list' ).html(objs.join(", "));
                            $('#selctObjs').html(html);
                        });
                    });
                </script>
                <br /><hr /><br />
                <select id="selctObjs" multiple="multiple" size="1">
    
                </select>
                <br /><br />
                <br /><br />
            </div>
        </div>
    </body>
    

    【讨论】:

      【解决方案2】:

      另一种解决方案:

      http://jsfiddle.net/wxfa98q1/

      $('#close').click(function(){
          // Resize the select
          $('#selctObjs').attr('size',$(".SlectBox option:selected").length);
          // Empty children
          $('#selctObjs').empty();
          // For each selected options create one on the other select
          $.each($(".SlectBox option:selected"),function (i, item) {
                  $('#selctObjs').append($('<option>', { 
                      value: item.value,
                      text : item.text 
                  }));
           });
      });
      

      【讨论】:

        【解决方案3】:

        据我所知,您正在从每个选定选项中获取值并将它们放入数组中。您还可以从这些对象中添加 html 并将它们也放入数组中。

        之后,我会遍历整个数组并执行以下操作:

        var $selctObjs = $('#selctObjs');
        objs.forEach(function(entry) {
            $selctObjs.append('<option value='+ entry.value +' >'+entry.html +'</option>');
        });
        

        希望有用。

        【讨论】:

          【解决方案4】:

          您只需替换以下标记:

           <select class="SlectBox" size="8" multiple="multiple" title="Select objects">
          

          <select class="SlectBox" size="8" multiple="multiple" title="Select objects" onchange="qq(this)">
          

          然后定义一个名为qq的函数

          function qq(v)
          {
             alert(v.options[v.selectedIndex].value); //it prompt the select value.
          }
          

          【讨论】:

            【解决方案5】:

            试试

             $('#close').click(function () {
                 var objs = $(".SlectBox option:selected").map(function () {
                     return this.value;
                 }).get();
                 $('#list').html(objs.join(", "));
            
                 $("#selctObjs").html($(".SlectBox option:selected").clone());
             });
            

            DEMO

            【讨论】:

              【解决方案6】:

              根据我的说法,您的代码运行良好,只是出现$('#SlectBox').multiselect({ includeSelectAllOption: true }); 的错误 这行代码。你用过jquery插件吗?

              请检查我修改后的代码

              fiddle link

              html

              <body style="background-color: azure;" ng-app="app">
              <div id="container" style="padding: 50px 100px 50px 200px; width: 80%" ng-controller="ctrl">
                  <div class="block" style="padding: 15px;">
                      <h4 class="blockTitle">Rule Builder</h4>
                      <br />
                      <div class="row">
                          <div class="col-md-2">
                              <button class="btn btn-default" id="objct">Show Objects</button>
                              <script>
                                  $(document).ready(function(){
                                      $('#objct').click(function(){
                                          $('#objList').show();
                                      })                            
                                  })
                              </script>
                          </div>
                          <div class="col-md-5" id="objList" style="display: none;height: auto; width: 200px;" >
                              <select class="SlectBox" size="8" multiple="multiple" title="Select objects">
                                  <option value="Object_1">Object 1</option>
                                  <option value="Object_2">Object 2</option>
                                  <option value="Object_3">Object 3</option>
                                  <option value="Object_4">Object 4</option>
                                  <option value="Object_5">Object 5</option>
                                  <option value="Object_6">Object 6</option>
                                  <option value="Object_7">Object 7</option>
                                  <option value="Object_8">Object 8</option>
                                  <option value="Object_9">Object 9</option>
                                  <option value="Object_10">Object 10</option>
                                  <option value="Object_11">Object 11</option>
                              </select>
                              <br />
                              <br />
                              <button id="close" class="btn btn-default" style="float: right">OK</button>
                          </div>
                      </div>
                      <br /><br />
                      <p id="list"></p>
                      <br /><hr /><br />
                      <select id="selctObjs">
                          //Here I want to populate the list
                      </select>
                      <br /><br />
                      <br /><br />
                  </div>
              </div>
              

              javascript

              `$(函数(){

                              $('#close').click(function(){
                                  var objs = [];
                                  var optionList = "";
                                  $.each($(".SlectBox option:selected"), function(){            
                                      objs.push($(this).val());
                                  });
                                  $( '#list' ).html(objs.join(", "));
                                  $("#selctObjs").html("");
              
                                  $.each(objs,function(index){
                                      optionList=optionList+"<option>"+objs[index]+"</option>"
                                  })
                                  $("#selctObjs").html(optionList);
                              });
                          });`
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-08-17
                • 2023-03-29
                • 1970-01-01
                • 2012-07-14
                • 1970-01-01
                相关资源
                最近更新 更多