Java Web基础:第十九讲 JavaScript处理(二)

本文内容摘自:《Java Web开发教程——入门与提高篇(JSP+Servlet)》

实例组合列表框
应用背景:页面中有两个列表框,需要把左边的一些选项添加到右边的列表框中,或者把左边的一些选项移动到左边的列表框中。
典型例子:
组合列表框的效果:效果如图4.1 所示。
                              
4.1 组合列表框
实现的基本思路:
l         编写init 方法对两个列表框进行初始化;
l         body 添加onload 事件调用init 方法;
l         编写 move(s1,s2) 方法把 s1 中选中的选项添加到 s2 中,同时在 s1 中删除该选项;
l         编写 moveAll(s1,s2) 方法把 s1 中所有的选项都移动到 s2 中;
l         为中间的4 个按钮添加onclick 事件,分别调用 move(s1,s2) moveAll(s1,s2) 两个方法。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<script language="javascript" type="text/javascript">
   // 对下拉框信息进行初始化
   function init(){
      var options = new Array(10);
      for(i = 0;i<10;i++)
      {
          options[i] = " 选项 "+(i+1);
      }
      s1.length=10;
      for(i = 0;i<10;i++)
      {
          s1.options[i].value=i+1;
          s1.options[i].text=options[i];
      }
   }
  
   // 把选中的选项移动到右边
   function move(s1,s2){
      // 判断是否有选择项
      index = s1.selectedIndex
      if(index==-1){
         alert(" 没有选择 ");
         return;
      }
     
      // 修改 s2 ,把 s1 中选中的选项添加到 s2
      s2.length++;
      s2.options[s2.length-1].value = s1.options[index].value;
      s2.options[s2.length-1].text= s1.options[index].text;
     
      // 删除 s1 中被选择的选项
      s1.remove(index);     
   }
  
   // 把所有选项移动到右边
   function moveAll(s1,s2){
      // 判断是否有选择项
      if(s1.length == 0){
         alert(" 没有可用选择 ");
         return;
      }
     
      // s1 中的选项添加到 s2
      s2.length = s1.length + s2.length;
      for(i=0;i<s1.length;i++){
         s2.options[s2.length-s1.length+i].value=s1.options[i].value;
         s2.options[s2.length-s1.length+i].text=s1.options[i].text;
      }
 
      // 清空 s1
      s1.length = 0;     
   }
</script>
<style type="text/css">
   input {width =40}
</style>
      
    <head>
       <title>jsp4-1-1-c.html</title>
 
       <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
       <meta http-equiv="description" content="this is my page">
       <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
       <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
 
    </head>
 
    <body οnlοad="init()">
       <table>
           <tr>
              <td>
                  <select name="s1" size=10 style="width: 100">
                  </select>
              </td>
              <td>
                  <input type="button" name="moveToRight" value=">" onClick="move(s1,s2)">
                  <br>
                  <input type="button" name="moveAllToRight" value=">>" onClick="moveAll(s1,s2)">
                  <br>
                  <input type="button" name="moveToLeft" value="&lt;" onClick="move(s2,s1)">
                  <br>
                  <input type="button" name="moveAllToLeft" value="&lt;&lt;" onClick="moveAll(s2,s1)">
                  <br>
              </td>
              <td>
                  <select name="s2" size=10 style="width: 100">
                  </select>
              </td>
           </tr>
       </table>
    </body>
</html>
李绪成 CSDN Blog http://blog.csdn.net/javaeeteacher
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值