zoukankan      html  css  js  c++  java
  • javascript 可多选的下拉框 multiselect 动态删除option值,动态添加option值,动态生成表格

    首先引用一个写的很好的博客http://www.cnblogs.com/landeanfen/p/5013452.html

    我使用的是bootstrap-multiselect,实现功能是

    1. 选择下拉框中的某几项数据后,通过点击add按键,可以将数据动态的添加到一个table中;
    2. 移除掉下拉框中的这几项;
    3. 删除table中的某行数据,对应的下拉框中会再添加这些值。

    bootstrap-multiselect源码主页:https://github.com/davidstutz/bootstrap-multiselect

    bootstrap-multiselect文档以及Demo:http://davidstutz.github.io/bootstrap-multiselect/

    HTML Code 

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4     <meta charset="UTF-8">
     5     <link rel="stylesheet" href="/static/thirdpart/zui/css/zui.min.css">
     6     <link rel="stylesheet" href="/static/thirdpart/zui/css/zui-theme.css" />
     7     <link rel="stylesheet" href="/static/thirdpart/zui/lib/datatable/zui.datatable.min.css">
     8     <script src="/static/thirdpart/zui/lib/jquery/jquery.js"></script>
     9     <script src="/static/thirdpart/zui/js/zui.js"></script>
    10     <script src="/static/thirdpart/zui/lib/datatable/zui.datatable.min.js"></script>
    11     <script type="text/javascript" src="/static/thirdpart/bootstrap/js/bootstrap-multiselect.js"></script>
    12     <link rel="stylesheet" href="/static/thirdpart/bootstrap/css/bootstrap-multiselect.css" type="text/css">
    13     <link href="/static/thirdpart/bootstrap/css/multiple-select.css" rel="stylesheet">
    14     <script src="/static/thirdpart/bootstrap/js/multiple-select.js"></script>
    15 </head>
    16 
    17 <body>     
    18 <div class="modal" id="assign_servers" style="display: block; position: static;">
    19     <div class="modal-dialog " >
    20         <div class="modal-content">
    21             <div class="modal-header">
    22                 <h4 class="modal-title">Assign Servers</h4>
    23             </div>
    24           <div class="modal-body" id="div1">
    25                 <form class="form-horizontal" id=regular_application  >
    26                       <div class="form-group" id="cloud_div" >
    27                             <label class="col-xs-1"> Cloud</label>
    28                             <div class="col-xs-3" id='cloud_ip_div'>
    29                                   <select   multiple="multiple"  class="form-control" id="cloud_server_ip" style="background-color:'white';display:inline">    
    30                                     <option value="0">cloud_server0</option>
    31                                     <option value="1">cloud_server1</option>
    32                                     <option value="2">cloud_server2</option>
    33                                     <option value="3">cloud_server3</option>
    34                                     <option value="4">cloud_server4</option>
    35                                     <option value="5">cloud_server5</option>
    36                                 </select> 
    37                                 <script type="text/javascript">
    38                                     $(document).ready(function() {
    39                                         $('#cloud_server_ip').multiselect({
    40                                             includeSelectAllOption: true,
    41                                             buttonWidth: '130px',
    42                                                 maxHeight: 150,
    43                                             //enableFiltering: true
    44                                         });
    45                                     });
    46                              </script>    
    47                          </div>
    48                          <div  class="col-xs-1 ">
    49                              <input type="button"  name="add_cloud_name" value="ADD" class="btn btn-primary" id="add_cloud_data" ><!--  ADD</input> -->
    50                          </div>
    51                         <label class="col-xs-2 "> Device</label>
    52                           <div class="col-xs-3" id='device_ip_div'>
    53                               <select  multiple="multiple" class="form-control" name="device_server_ip" id="device_server_ip" style="background-color:'white';display:inline">
    54                                    <option value="0">device_server0</option>
    55                                    <option value="1">device_server1</option>
    56                                    <option value="2">device_server2</option>
    57                                    <option value="3">device_server3</option>
    58                                    <option value="4">device_server4</option>
    59                                    <option value="5">device_server5</option>
    60                             </select> 
    61                               <script type="text/javascript">
    62                                 $(document).ready(function() {
    63                                     $('#device_server_ip').multiselect({
    64                                         includeSelectAllOption: true,
    65                                         buttonWidth: '130px',
    66                                             maxHeight: 150,
    67                                         //enableFiltering: true
    68                                     });
    69                                 });
    70                              </script>
    71                                 
    72                         </div>
    73                         <div  class="col-xs-1 ">
    74                              <input type="button"  name="add_device_name" value=" ADD" class="btn btn-primary" id="add_device_data" > <!-- ADD</button> -->
    75                         </div>
    76                      </div> 
    77             </form>   
    78              <form id="server_form" method = 'post' >
    79                  <div id='table_server'style="overflow-y: auto; height: 300px;">
    80                     <table  class="table table-hover "  id="server_table"  style="margin-top:10px">
    81                         <thead>
    82                                 <tr>
    83                                     <th scope="col" >Server Type</th>
    84                                 <th scope="col" >Host Name</th>
    85                                 <th scope="col" >Operation</th>
    86                              </tr>           
    87                         </thead>
    88                         <tbody>
    89                         </tbody>
    90                     </table>
    91                 </div> 
    92                </form>
    93            </div>
    94         </div>
    95    </div>
    96 </div>    
    97 </body>
    98 </html>    

    Javascript Code

     1 <script>
     2 //add server data
     3 $(function(){ 
     4      $('#add_cloud_data').click(function(){
     5        if ($('#cloud_server_ip').val()){
     6                add_servers('Cloud','cloud_server_ip');
     7             $(".table_data").css("background-color","#f2f2f2");
     8             $(".table_data").css("border","0");
     9             $(".table_data").mouseover(function(){
    10             $(".table_data").css("background-color","#eceff1");});
    11             $(".table_data").mouseout(function(){
    12             $(".table_data").css("background-color","#f2f2f2");}); 
    13        }
    14        });
    15 });
    16 
    17 $(function(){ 
    18      $('#add_device_data').click(function(){
    19        if ($('#device_server_ip').val()){
    20            add_servers('Device','device_server_ip'); 
    21             $(".table_data").css("background-color","#f2f2f2");
    22             $(".table_data").css("border","0");
    23             $(".table_data").mouseover(function(){
    24             $(".table_data").css("background-color","#eceff1");});
    25             $(".table_data").mouseout(function(){
    26             $(".table_data").css("background-color","#f2f2f2");}); 
    27        }
    28       });
    29 });
    30 
    31 function add_servers(server_type,server_ip){ 
    32     len=$('#'+server_ip).val().length
    33     for(var i=0;i<len;i++){
    34         var server_value=$('#'+server_ip).val()[0] 
    35         var server_text=$('#'+server_ip).find("option:selected")[0].innerHTML
    36         add_single_server(server_type,server_ip,server_value,server_text);
    37        $('option[value="'+server_value+'"]', $('#'+server_ip)).remove();
    38         }
    39     $('#'+server_ip).multiselect('rebuild');
    40 }    
    41     
    42 function add_single_server(server_type,server_ip,server_value,server_text){                 
    43     var tr = document.createElement("tr"); 
    44     tr.setAttribute('class','table_data');
    45     
    46     //servertype    input                     
    47     var servertypeVal = server_type;
    48     var servertypeTd = document.createElement("td");  
    49     tr.appendChild(servertypeTd);  
    50     var input_box = document.createElement('input');
    51     input_box.setAttribute('value',servertypeVal);  
    52     input_box.setAttribute('name',"table_servertype");
    53     input_box.setAttribute('style','70px');
    54     input_box.setAttribute('type','text');     
    55     input_box.setAttribute('readonly','readonly');  
    56     input_box.setAttribute('class','table_data');                 
    57     servertypeTd.appendChild(input_box); 
    58 
    59     //serverip    input    
    60     var serveripVal =server_text;
    61     var serverip_id=server_value;
    62     var serveripTd = document.createElement("td");
    63     tr.appendChild(serveripTd);  
    64     var input_box = document.createElement('input');
    65     input_box.setAttribute('value',serveripVal);
    66     input_box.setAttribute('title',serverip_id);
    67     input_box.setAttribute('id',"table_hostname");
    68     input_box.setAttribute('name',"table_hostname");
    69     input_box.setAttribute('style','300px');
    70     input_box.setAttribute('type','text');     
    71     input_box.setAttribute('readonly','readonly');  
    72     input_box.setAttribute('class','table_data');
    73     serveripTd.appendChild(input_box); 
    74            
    75      // delete operate
    76      var delTd = document.createElement('td');
    77      tr.appendChild(delTd); 
    78      var btnDel = document.createElement('input'); 
    79      btnDel.setAttribute('type','button'); 
    80      btnDel.setAttribute('value','Delete');
    81      btnDel.onclick=function(){ 
    82          if(confirm("Do you want to delete this line?")){ 
    83            //btnDel - td - tr - tbody . removeChild(tr)
    84                $("#"+server_ip).append("<option value="+serverip_id+">"+serveripVal+"</option>");
    85                this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
    86                $('#'+server_ip).multiselect('rebuild');
    87          } 
    88      }
    89      delTd.appendChild(btnDel); 
    90      
    91      document.getElementById("server_table")  
    92          .getElementsByTagName("tbody")[0]  
    93          .appendChild(tr);    
    94 }
    95 </script>
  • 相关阅读:
    div弹出层
    经典SQL语句
    sql连接及操作
    给flash加上连接
    在c#中图片原比例缩放
    悬浮提示筐
    拖动板块
    IFrame自适应高度
    SQL语句中的日期计算
    注意Request.Cookies["UserID"]的用法
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/7794271.html
Copyright © 2011-2022 走看看