jsp循环显示checkbox时部分选择checkbox问题 100
□(全选)□Layer1□Layer2□Layer3□Layer4□(全选)□Layer1□Layer2□Layer3□Layer4想实现选中全选前面的checkbox时...
□(全选) □Layer1 □Layer2 □Layer3 □Layer4
□(全选) □Layer1 □Layer2 □Layer3 □Layer4
想实现选中全选前面的checkbox时该行的所有checkbox都选中。现在问题是只有最后一行可以实现,前面的行选中全选后其他checkbox不会选中。代码如下:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<head>
<script>
function checkfk(){
var ToolType=new Array("LSH_VM","LSH_ME");
for(var j=0;j<ToolType.length;j++){
var allcheck=document.getElementById(ToolType[j]); //获取 全选check 的id
var othercheck=document.getElementsByName("fkcheck"); //获取数组名称为fkcheck的 复选框
for(var i=0;i<othercheck.length;i++){
var othervalue=othercheck[i].value;
if(allcheck.checked){
if(othervalue==ToolType[j]){
othercheck[i].checked=true;
}else{
othercheck[i].checked=false;
}
}else{
othercheck[i].checked=false;
}
}
}
} //循环遍历 复选框 ,当点击全选时,其它被选中,否则取消选中
</script>
</head>
<BODY>
<form>
<%
String[] DataType={"LSH_VM","LSH_ME"};
for(int i=0;i<DataType.length;i++){
%>
<input type="checkbox" value="" id=<%=DataType[i]%> name="" size="" class="m-wrap " onclick="checkfk()">
<span class="">(全选)</span>
<input type="checkbox" name="fkcheck" value=<%=DataType[i]%> id="" size="" class="m-wrap " >
<span class="">Layer1</span>
<input type="checkbox" name="fkcheck" value=<%=DataType[i]%> id="" size="" class="m-wrap " >
<span class="">Layer2</span>
<input type="checkbox" name="fkcheck" value=<%=DataType[i]%> id="" size="" class="m-wrap " >
<span class="">Layer3</span>
<input type="checkbox" name="fkcheck" value=<%=DataType[i]%> id="" size="" class="m-wrap " >
<span class="">Layer4</span>
<br>
<%
}
%>
</script>
</form>
</body>
</html>
全部改成javascript代码也一样。只有最后一行有反应,前面的行没反应。
var DataType=new Array("LSH_VM","LSH_ME");
for(var k=0;k<DataType.length;k++){
document.write('<input type="checkbox" value="" id="'+DataType[k]+'" onclick="checkfk()">');
document.write('<span class="">(全选)</span>');
document.write('<input type="checkbox" name="fkcheck" value="'+DataType[k]+'" id="" size="" class="m-wrap " >');
document.write('<span class="">Layer1</span>');
document.write('<input type="checkbox" name="fkcheck" value="'+DataType[k]+'" id="" size="" class="m-wrap " >');
document.write('<span class="">Layer2</span>');
document.write('<input type="checkbox" name="fkcheck" value="'+DataType[k]+'" id="" size="" class="m-wrap " >');
document.write('<span class="">Layer3</span>');
document.write('<input type="checkbox" name="fkcheck" value="'+DataType[k]+'" id="" size="" class="m-wrap " >');
document.write('<span class="">Layer4</span>');
document.write('<br>');
} 展开
□(全选) □Layer1 □Layer2 □Layer3 □Layer4
想实现选中全选前面的checkbox时该行的所有checkbox都选中。现在问题是只有最后一行可以实现,前面的行选中全选后其他checkbox不会选中。代码如下:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<head>
<script>
function checkfk(){
var ToolType=new Array("LSH_VM","LSH_ME");
for(var j=0;j<ToolType.length;j++){
var allcheck=document.getElementById(ToolType[j]); //获取 全选check 的id
var othercheck=document.getElementsByName("fkcheck"); //获取数组名称为fkcheck的 复选框
for(var i=0;i<othercheck.length;i++){
var othervalue=othercheck[i].value;
if(allcheck.checked){
if(othervalue==ToolType[j]){
othercheck[i].checked=true;
}else{
othercheck[i].checked=false;
}
}else{
othercheck[i].checked=false;
}
}
}
} //循环遍历 复选框 ,当点击全选时,其它被选中,否则取消选中
</script>
</head>
<BODY>
<form>
<%
String[] DataType={"LSH_VM","LSH_ME"};
for(int i=0;i<DataType.length;i++){
%>
<input type="checkbox" value="" id=<%=DataType[i]%> name="" size="" class="m-wrap " onclick="checkfk()">
<span class="">(全选)</span>
<input type="checkbox" name="fkcheck" value=<%=DataType[i]%> id="" size="" class="m-wrap " >
<span class="">Layer1</span>
<input type="checkbox" name="fkcheck" value=<%=DataType[i]%> id="" size="" class="m-wrap " >
<span class="">Layer2</span>
<input type="checkbox" name="fkcheck" value=<%=DataType[i]%> id="" size="" class="m-wrap " >
<span class="">Layer3</span>
<input type="checkbox" name="fkcheck" value=<%=DataType[i]%> id="" size="" class="m-wrap " >
<span class="">Layer4</span>
<br>
<%
}
%>
</script>
</form>
</body>
</html>
全部改成javascript代码也一样。只有最后一行有反应,前面的行没反应。
var DataType=new Array("LSH_VM","LSH_ME");
for(var k=0;k<DataType.length;k++){
document.write('<input type="checkbox" value="" id="'+DataType[k]+'" onclick="checkfk()">');
document.write('<span class="">(全选)</span>');
document.write('<input type="checkbox" name="fkcheck" value="'+DataType[k]+'" id="" size="" class="m-wrap " >');
document.write('<span class="">Layer1</span>');
document.write('<input type="checkbox" name="fkcheck" value="'+DataType[k]+'" id="" size="" class="m-wrap " >');
document.write('<span class="">Layer2</span>');
document.write('<input type="checkbox" name="fkcheck" value="'+DataType[k]+'" id="" size="" class="m-wrap " >');
document.write('<span class="">Layer3</span>');
document.write('<input type="checkbox" name="fkcheck" value="'+DataType[k]+'" id="" size="" class="m-wrap " >');
document.write('<span class="">Layer4</span>');
document.write('<br>');
} 展开
1个回答
展开全部
可以用Js做到,也能用JSP做到 我就说下JSP的 input type="checkbox" id="name" value="项1"/项1 input type="checkbox" id="name" value="项2"/项2 input type="checkbox" id="name" value="项3"/项3 然后在跳转后的页面中 % String name[]=request.getParament("name") % 然后把这个数组循环输出
追问
非常感谢!您说的这样是能实现,我现在是想选中全选时该行的所有checkbox自动全部选中,然后再根据情况,可能需要手动取消几个layer前的checkbox选中。麻烦您再帮忙看看。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询