jsp页面中select标签中怎么加checkbox实现多选?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp页面中select标签中怎么加checkbox实现多选?相关的知识,希望对你有一定的参考价值。
使用JSP页面代码:
代码如下:
<table>
<tr>
<td width="400px" align="left">入学批次:<SELECT NAME="grade"
id="grade" onchange="refreshEduLevelAndSpecialAjax();"> //选择入学批次会刷新层次和专业
<OPTION VALUE="0">
--请选择--
<c:forEach items="$gradeInfo" var="gradeInfo">
<OPTION VALUE="$gradeInfo.gradeName">$gradeInfo.gradeName
</c:forEach>
</SELECT></td>
<td width="400px" align="left">统考课程:<SELECT
NAME="uniExamCourseId" id="uniExamCourseId">
<OPTION VALUE="0">
--请选择--
<c:forEach items="$unifiedExamCourseList" var="uniExamCourse">
<OPTION VALUE="$uniExamCourse.id">$uniExamCourse.uniExamCourseName
</c:forEach>
</SELECT></td>
</tr>
<tr>
<td colspan="2" id="refreshEduLevelAndSpecialAjax"> //设置ID,用于填充层次和专业的下拉框
<table>
<tr>
<td width="400" align="left">层 次:<SELECT
NAME="eduLevelId" id="eduLevelId"
onchange="refreshSpecialAjax();"> //选择层次后刷新专业
<OPTION VALUE="0">--请选择--</OPTION>
<c:forEach items="$educationLevel" var="educationLevel">
<OPTION VALUE="$educationLevel.id">$educationLevel.educationLevelName
</c:forEach>
</SELECT></td>
<td width="400" align="left" id="refreshSpecialAjax">专 业:<SELECT //设置ID,用于填充专业的下拉框
NAME="specialId" id="specialId">
<OPTION VALUE="0">--请选择--</OPTION>
<c:forEach items="$specialList" var="special">
<OPTION VALUE="$special.id">$special.specialName
</c:forEach>
</SELECT></td>
</tr>
</table>
</td>
</tr>
</table>
参考技术A代码如下:
<html>
<head>
<title>中国站长天空-网页特效-表单特效-下拉框中的复选框</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<!--把下面代码加到<head>与</head>之间-->
<style type="text/css">
body,tdfont-size:12px;color:#000000;
.checkboxwidth:15px;height:15px;
.ckedmargin:1px;padding:2px;width:98%;display:block;background-color:highlight;color:highlighttext;
.nockmargin:1px;padding:2px;width:98%;display:block;
</style>
</head>
<body>
<!--把下面代码加到<body>与</body>之间-->
<script language="javascript">
<!--
function HtmlEncode(text)
return text.replace(/&/g, '&').replace(/\\"/g, '"').replace(/</g, '<').replace(/>/g, '>');
function _checkbox(name,str,defv)
//haiwa@2005-8-17
//http://www.51windows.net
var arr=str.split("^");
var ck="",bc="";
for(var i=0;i<arr.length;i++)
var thisarr=arr[i].split("@=");
if (thisarr[0].length>0)
var t=(thisarr.length==2)?thisarr[0]:arr[i];
var v=(thisarr.length==2)?thisarr[1]:arr[i];
if((","+HtmlEncode(defv).toLowerCase()+",").replace(/ ,/g, ',').indexOf(","+v+",")!=-1)ck=" checked";cls="cked";
elseck="";cls="nock";
var thisstr="<label class=\\""+cls+"\\" for=\\"i_"+name+"_"+i+"\\" id=\\"l_"+name+"_"+i+"\\">";
thisstr+="<input class=\\"checkbox\\" onpropertychange=\\"document.getElementByIdx_x('l_"+name+"_"+i+"').className=(document.getElementByIdx_x('i_"+name+"_"+i+"').checked)?'cked':'nock';\\" onclick=\\"document.getElementByIdx_x('l_"+name+"_"+i+"').className=(document.getElementByIdx_x('i_"+name+"_"+i+"').checked)?'cked':'nock';\\" type=\\"checkbox\\""+ck+" name=\\""+name+"\\" id=\\"i_"+name+"_"+i+"\\" value=\\""+HtmlEncode(v)+"\\" \\/> ";
thisstr+=HtmlEncode(t)+"</label>";
document.write(thisstr);
function _getv(o)
var allvalue="";
if(typeof(o)=="undefined")return "";
if (typeof(o.length)=="undefined")
if(o.checked)return o.value+ ",";elsereturn "";
for(var i=0;i<o.length;i++)
if(o[i].checked)
allvalue +=o[i].value+",";
return allvalue;
function _setv(o,defv)
var allvalue=(","+HtmlEncode(defv).toLowerCase()+",").replace(/ ,/g, ',');
for(var i=0;i<o.length;i++)
var v = o[i].value;
o[i].checked=(allvalue.indexOf(","+v+",")!=-1)
return allvalue;
function _sl(o,b)
for(var i=0;i<o.length;i++)
o[i].checked = b
//if(o[i].checked!=b)o[i].click();
//-->
</script>
<form method="post" name="myform" action="?">
<table border="0" width="200">
<tr>
<td><div style="width:180px;height:150px;overflow:auto;border: 2px inset #FFFFFF;">
<script language="javascript">
<!--
_checkbox("city","北京^河北^黑龙江^河南^江西^辽宁^宁夏^四川^天津^浙江^香港","北京,山东")
//-->
</script>
</div></td>
</tr>
<tr>
<td><button onclick='_sl(document.myform.city,true);'>全选</button>
<button onclick='_sl(document.myform.city,false);'>全不选</button>
<button onclick='_setv(document.myform.city,"甘肃,广东");'>set值</button>
<button onclick='alert(_getv(document.myform.city));'>get值</button></td>
</tr>
<tr>
<td><div style="width:180px;height:120px;overflow:auto;border: 2px inset #FFFFFF;">
<script language="javascript">
<!--
_checkbox("WebSite","Google.com@=http://www.google.com^Baidu.com@=http://www.baidu.com^Zzsky.cn@=http://www.zzsky.cn","http://www.zzsky.cn")
//-->
</script>
</div></td>
</tr>
<tr>
<td><button onclick='_sl(document.myform.WebSite,true);'>全选</button>
<button onclick='_sl(document.myform.WebSite,false);'>全不选</button>
<button onclick='_setv(document.myform.WebSite,"http://www.google.com");'>set值</button>
<button onclick='alert(_getv(document.myform.WebSite));'>get值</button></td>
</tr>
<tr>
<td align="center"><button onclick='document.myform.reset();'>重置</button> </td>
</tr>
</table>
</form>
</body>
</html>
springmvc 在前端jsp页面,select标签显示复合条件。和 session跨页面操作。
在jsp的select标签中,显示一个级联且带有复合查询的结果的select标签。
方法是,在这个类中,定义一个字段,extend,然后把他的get属性,重写为需要的业务
如下
private String extend; public String getExtend() { return this.zhouyiIndex.getName() + "卦 "+this.yaoId+"爻:"+this.yaoContent.substring(0,this.yaoContent.length()>20?20:this.yaoContent.length()); } public void setExtend(String extend) { this.extend = extend; }
然后再在前台的jsp页面中调用即可。
<form:select path="zhouyiYao.id" class="form-control" id="zhouyiYao" > <form:options items="${zhouyiYao}" itemValue="id" itemLabel="extend"></form:options> </form:select>
第二个问题,如果需要定义session跨页面操作。
首先,在这个类上添加@SessionAttributes("")的标签,有s。
@Controller @SessionAttributes("authorId") public class ZhouyiContentController {
然后在需要的添加的authorId属性写入map中,或者ModelAndView,中,只有键值对对应,就可
@RequestMapping("/getContentsByAuthor/{authorId}") public ModelAndView getContentsByAuthor(@PathVariable("authorId") Integer authorId,@RequestParam(value="pn",defaultValue = "1") Integer pn) { ModelAndView mv = new ModelAndView(); PageHelper.startPage(pn, 12); List<ZhouyiContent> zhouyiContentsByAuthor = zhouyiContentService.getZhouyiContentsByAuthor(authorId); PageInfo page = new PageInfo<ZhouyiContent>(zhouyiContentsByAuthor, 7); mv.addObject("pageinfo", page); mv.addObject("authorId",authorId); //关键的session保存。键对应。 mv.setViewName("zhouyiContent"); return mv; }
然后再在需要的类引入上,加入这个@SessionAttribute(“”)的注解,没有s
@RequestMapping("/zhouyiContentAdd") public ModelAndView zhouyiContentAdd(ZhouyiContent zhouyiContent,@SessionAttribute("authorId") Integer authorId){ ModelAndView mv = new ModelAndView(); mv.addObject("zhouyiAuthor", zhouyiAuthorService.getZhouyiContentAuthorById(authorId)); mv.addObject("zhouyiYao",zhouyiYaoService.getZhouyiYaos() ); mv.setViewName("zhouyiContentAdd"); return mv; }
以上是关于jsp页面中select标签中怎么加checkbox实现多选?的主要内容,如果未能解决你的问题,请参考以下文章
在jsp中如何实现加一个动态下拉框选择年份,并在当前页面显示相应的月份值?