只能选择一项的多选框

最终结果
1、在routeList.jsp页面上点击右下角“选择签证类型”
2、在弹出的ServiceVisaType.jsp页面上选择所需签证(同一个国家下的签证只可以选择一项)
 
3、点击保存后,把值返回到routeList.jsp页面上
 
 
实现方法:
routeList.jsp页面
 
function getServiceVisaType() {
            var cityId = document.getElementById("cityId").value;
            var url = '../zhike/ServiceVisaType.jsp?cityId=' + cityId;
            //打开一个窗口
            var guestFrom = window.showModalDialog(url, "", "dialogHeight:300px;dialogWidth:550px;center:yes;help:yes;resizable:yes;status:yes;");
            if (guestFrom != null) {
                var a = guestFrom.split("/");
                document.getElementById("visaTypeName").value = a[0];
                document.getElementById("visaTypeId").value = a[1];
            }
        }
 
ServiceVisaType.jsp页面
 
<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib prefix="xweb" uri="xweb" %>
<%@ page import="com.zkhx.travel.front.visa.proxy.visaManager" %>
<%@ page import="com.zkhx.util.SmartUtil" %>
<%@ page import="com.zkhx.travel.common.proxy.CountryManage" %>
<%
   //获取从页面上的cityId的值
    String cityId = request.getParameter("cityId");
   //荻得根路径
    String root=request.getContextPath();
%>
<html><base target="_self">
<xweb:loadScripts/>
<xweb:noCache/>
<xweb:message/>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<link href="<%=root%>/css/index.css" rel="stylesheet" type="text/css" />
<link href="<%=root%>/css/public.css" rel="stylesheet" type="text/css" />
<title>选择签证类型</title>
</head>
 
 //定义两个变量,用来保存多选框的值和ID
  var textVal;
  var textId;
  //a--城市的长度
  //b--获取的每一次被选择的id
  //c--用来标记同一个国家下有相同的name
  function test(a, b,c) {
      textVal = "";
      textId = "";
      //获取被点击的那个多选框
      var id = document.getElementById(b);
      if(eval(id.checked) == true){
      //获取同一个城市下的几种签证,如一个国家可以有个人旅游签证、商务签证、探亲访友签证
           var boxes = document.getElementsByName("ids"+c);
           for (var i = 0; i < boxes.length; i++)
          {
        //让同一个国家下的几种签证设置为不可以选择状态
            document.getElementById(boxes[i].id).checked = false;
        //被点击的那个签证设置为选择状态
            if(b == boxes[i].id){
            document.getElementById(boxes[i].id).checked = true;
            }
          }
      }
     //把被选择的多选框的值和ID保存到textVal和textId中
      for (var j = 0; j < a; j++) {
          var boxes = document.getElementsByName("ids"+j);
          for (var i = 0; i < boxes.length; i++)
          {
              if (boxes[i].checked)
              {
                  textVal += boxes[i].nextSibling.nodeValue;
                  textId += boxes[i].value + ",";
              }
          }
      }
     //把值插入ID分别为language和language1的框中
      document.form1.language.innerText = textVal;
      document.form1.language1.innerText = textId;
  }
   //选择所需签证后,把值返回并关闭当前窗口
    function returnguest(){
    var b=document.getElementById("language").value;
    var p=document.getElementById("language1").value;
    window.returnValue = b.substring(0,b.length-1)+"/"+p.substring(0,p.length-1);
    window.parent.close();
    }
      function fanhui(){
          window.parent.close();
      }
</script>
 
<body style="padding-left:5px; padding-right:5px;">
<form action="" name="form1">
<div style="font-size:14px; font-weight:bold; color:#003366; margin-top:8px; border-bottom:4px solid #9EB8D3; margin-bottom:6px;">请选签证类型</div>
<table width="100%" border="0" cellpadding="0" cellspacing="1" style=" line-height:24px;">
      <%
         //visaManager里面有签证增删改查的方法
          visaManager vm=new visaManager();
        //CountryManage里面有国家增删改查的方法
          CountryManage cm = new CountryManage();
      %>
    <tr><td colspan="5" height="26" class="tab_contC lft">
        <%
            //cityId里面有多个城市的ID,以逗号隔开
            String[] cityIds = cityId.split(",");
            for(int i=0;i<cityIds.length;i++){
            int j = 0;
        %>
          //xweb是一个框架
           //<%=vm.visaTypeList(cityIds[i])%>通过城市ID查询该城市有几个签证,然后一一输出来
        <xweb:iterate type="com.zkhx.travel.front.visa.model.VisaType" id="visa" collection="<%=vm.visaTypeList(cityIds[i])%>">
            <%
                j = j+1;
            %>
            <input onclick="test(<%=cityIds.length%>,<%=visa.getCountryId()%><%=j%>,<%=i%>)"
type="checkbox" name="ids<%=i%>"  value="<%=visa.getVisaTypeId()%>"
id="<%=visa.getCountryId()%><%=j%>"/><%=cm.CountryList1(visa.getCountryId())%>(<%=visa.getVisaTypeName()%>)
                </xweb:iterate><br />
        <%
            }
        %>
    </td>
    <tr>
        <td colspan="5" class="tab_contC lft">
          //显示所选的签证类型
            <textarea rows="5" cols="60" name="language" id="language" readonly></textarea>
            <input type="hidden" name="language1" id="language1" size="50">
        </td>
        </tr>
</table>
//提交和返回
<div style="text-align:center; margin-top:6px;"><a onClick="returnguest();" style="CURSOR: hand"><img src="../images/save.gif" border="0" /></a>&nbsp;&nbsp;<a onClick="fanhui();"  style="CURSOR: hand"><img src="../images/back.gif" border="0" /></a></div>
</form>
</body>
</html>
posted @ 2013-02-28 15:24  范开胜  阅读(505)  评论(0编辑  收藏  举报