<<紧急求助>>在jsp中,关于checkbox ,全选,多选以及选中个数的问题~~~~
开始时没要求全选,能实现多选,并能或的选中的个数
后面又要实现全选功能,由于数据是从数据库中读取的,
具体有多少条记录不清楚,~~具体代码如下:
<script language="javascript">
<!--
function showWait(){
esave.style.visibility="visible";
}
-->
</script>
<form action="OK.jsp" name="returndate" method="post">
<tr>
<td>类别</td>
<td> </td>
</tr>
<%
//这里是sql语句,数据库的连接等
iNum++; //满足条件的条数
as=rs.getString("sddd"); //类别
%>
<tr>
<td><%=as%></td>
<td><input type="checkbox" name="returnOK<%=iNum%>" value="Returndate"></td></td>
</tr>
<tr>
<td colspan=2>
<input type="submit" name="returnDate" value="确认" title="确定反馈所选择的资料" onClick="javascript:if (confirm('您确认吗?')); else return false; this.style.visibility='hidden';showWait()">
</td>
</tr>
</table>
<%
//关闭数据库
%>
OK.jsp
<%
return_Date=request.getParameter("returnDate").trim();
try{
if(return_Date!=null){
iNum=Integer.parseInt(request.getParameter("iNum").trim());
for(int i=2;i<=iNum;i++){
return_OK=request.getParameter("returnOK"+i);
if(return_OK==null)
continue;
sql1="update table11 .........";
pstmt2=conn.prepareStatement(sql1);
............
update_Num=pstmt2.executeUpdate();
update_Num_c+=update_Num; //所选的记录条数,
}
}
}
........
%>
在此基础上增加一全选,请问应如何修改~~~~
[解决办法]
首先,我想说的checkbox本来就是可以多选的.至于你的那个什么选中个数,不是很明白.
所以你这个代码中<input type="checkbox" name="returnOK <%=iNum% >" value="Returndate" > name的值改成returnOK就可以了.这样的话,你的全选功能不就可以做了吗
[解决办法]
<script>function CheckAll(form) { for (var i=0;i<form.elements.length;i++) { var e = form.elements[i]; if (e.name != 'chkall') e.checked = form.chkall.checked; } }function chargeList(){ var num=0; for(i=0;i<listform.elements.length;i++) { var e=listform.elements[i]; if(e.checked) { num++; } } if(num!=0) { return confirm('确认要执行此操作?'); } else { alert("您没有选中任何一项"); return false; }}</script>
[解决办法]
你在写个判断撒!~
[解决办法]
这个地方一般用JavaScript实现复选框的功能如全选,反选等
[解决办法]
<script>function CheckAll(form) { for (var i=0;i<form.elements.length;i++) { var e = form.elements[i]; if (e.name != 'chkall') e.checked = form.chkall.checked; } }function chargeList(){ var num=0; for(i=0;i<listform.elements.length;i++) { var e=listform.elements[i]; if(e.checked) { num++; } } if(num!=0) { return confirm('确认要执行此操作?'); } else { alert("您没有选中任何一项"); return false; }}</script>
[解决办法]
不用去掉<%=iNum%>
按下面的方法修改~~~~
<script language="JavaScript">
function chkall(input1,input2)
{
var objForm = document.forms[input1];
var objLen = objForm.length;
for (var iCount = 0; iCount < objLen; iCount++)
{
if (input2.checked == true)
{
if (objForm.elements[iCount].type == "checkbox")
{
objForm.elements[iCount].checked = true;
}
}
else
{
if (objForm.elements[iCount].type == "checkbox")
{
objForm.elements[iCount].checked = false;
}
}
}
}
</script>
<form id="form1">
<input type="checkbox" value='全部选取' onclick='chkall("form1",this)' name=ssd><BR>
<input type="checkbox" name="item_001" value="1">1<BR>
<input type="checkbox" name="item_002" value="2">2<BR>
<input type="checkbox" name="item_003" value="3">3<BR>
<input type="checkbox" name="item_003" value="4">4
</form>
[解决办法]
动态输出,动态获取,明白LZ的意思,我也做过这样的