JS左右选框(二)

二、采用Jquery实现

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <script type="text/javascript" language="JavaScript"> //add $(function(){ $("#add").click(function(){ if($("#selectRights option:selected").length > 0){//如果有選中 $("#selectRights option:selected").each(function(){ $("#selectedRights").append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>"); $(this).remove(); }) } }) }) //addAll $(function(){ $("#addAll").click(function(){ $('#selectRights option').appendTo('#selectedRights'); }) }) //remove $(function(){ $("#remove").click(function(){ if($("#selectedRights option:selected").length > 0){//如果有選中 $("#selectedRights option:selected").each(function(){ $("#selectRights").append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>"); $(this).remove(); }) } }) }) //removeAll $(function(){ $("#removeAll").click(function(){ $('#selectedRights option').appendTo('#selectRights'); }) }) </script> <table width="460" border="0" align="left" cellpadding="0" cellspacing="0"> <tr> <td width="220"> <table width="200" border="0" cellpadding="1" cellspacing="1"> <tr> <td align="center">未選取</td> </tr> <tr> <td align="center" width="200" bgcolor="#FFFFFF"> <select id="selectRights" size="8" multiple="multiple" style="width:200px "> <c:forEach items="${selectRoleList }" var="option"> <option value="${option.value }" >${option.name }</option> </c:forEach> </select> </td> </tr> </table></td> <td width="25" align="center"> <input style="width: 50px" type="button" id="addAll" value=">>"> <input style="width: 50px" type="button" id="add" value=">"> <input style="width: 50px" type="button" id="remove" value="<"> <input style="width: 50px" type="button" id="removeAll" value="<<"> </td> <td width="200" colspan=""> <table width="200" border="0" cellpadding="1" cellspacing="1"> <tr> <td align="center">已選取</td> </tr> <tr> <td align="center" width="200" bgcolor="#FFFFFF"> <select id="selectedRights" size="8" multiple="multiple" style="width:200px "> <c:forEach items="${selectedRoleList }" var="option"> <option value="${option.value }" >${option.name }</option> </c:forEach> </select> </td> </tr> </table> </td> </tr> </table>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的实现下拉多框组件的示例代码: ```html <!-- HTML结构 --> <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown"> 项<span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu"> <li><a href="#" data-value="option1">项1</a></li> <li><a href="#" data-value="option2">项2</a></li> <li><a href="#" data-value="option3">项3</a></li> <li><a href="#" data-value="option4">项4</a></li> </ul> <input type="hidden" name="selected-options"> </div> ``` ```js // JS代码 let dropdown = document.querySelector('.dropdown'); let dropdownToggle = dropdown.querySelector('.dropdown-toggle'); let dropdownMenu = dropdown.querySelector('.dropdown-menu'); let dropdownItems = dropdownMenu.querySelectorAll('li a'); let selectedOptions = dropdown.querySelector('input[name="selected-options"]'); dropdownToggle.addEventListener('click', function(e) { e.stopPropagation(); dropdownMenu.classList.toggle('show'); }); for (let i = 0; i < dropdownItems.length; i++) { let item = dropdownItems[i]; item.addEventListener('click', function(e) { e.preventDefault(); e.stopPropagation(); let value = item.getAttribute('data-value'); item.classList.toggle('selected'); updateSelectedOptions(); }); } function updateSelectedOptions() { let values = []; for (let i = 0; i < dropdownItems.length; i++) { let item = dropdownItems[i]; if (item.classList.contains('selected')) { values.push(item.getAttribute('data-value')); } } selectedOptions.value = values.join(','); } ``` 这段代码实现了一个下拉多框组件,用户可以择多个项,项的值将以逗号分隔的形式保存在一个隐藏的表单元素中。当用户点击下拉框时,下拉框的显示状态将切换;当用户点击项时,项将被中或取消中,并更新隐藏的表单元素中的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值