selectBooleanCheckbox全选问题 table的行头有一个selectBooleanCheckbox,点它会全选/全不选下面的所有selectBooleanCheckbox,请问怎么做 谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script language="javascript"> function del()//用于判断记录有没有选中的函数 { var flag=true;//用于存储有没有选择的变量,false为有选,true没选 var temp="";//复选框的值,并事先给它预赋值为空,否则它的值为未定义 var tmp;//复选框数 if((document.form1.answer.length)=="undefined") //判断复选框的数目,当只有1个复选框时不能使用复选框length属性,所以它的值为undefined { tmp=1 } else { tmp=document.form1.answer.length } //接下来就分两种情况来处理,一种是只有1个复选框,另一种是多个复选框 if(tmp==1) { if(document.form1.answer.checked) //当复选框被选中时 { flag=false; temp=document.form1.answer.value //因为只有1个复选框,所以将值直接付给temp } } else //另外一种情况有多个复选框时 { for(i=0;i<document.form1.answer.length;i++) //for循环 { if(document.form1.answer[i].checked) //当answer[i]被选中时为true { if(temp=="") { flag=false; temp=document.form1.answer[i].value } else { flag=false; temp=temp+","+document.form1.answer[i].value } } } } if(flag) { alert("对不起,你还没选择!"); } else { //name=document.form1.name.value //alert(name) if(confirm("确实要删除?")) { //window.location="delnews.asp?id="+temp;//发送id号到删除处理页 alert("删除ID为"+temp); } } //return !flag; } //全选函数 function checkall(all)//用于判断全选记录的函数 { var a=document.getElementsByName("answer");//返回answer的集合 for(var i=0; i<a.length;i++)a[i].checked=all.check1.checked; } </script> <form name="form1" method="post" action=""> <input type="checkbox" name="answer" value="1">1<br> <input type="checkbox" name="answer" value="2">2<br> <input type="checkbox" name="answer" value="3">3<br> <input type="checkbox" name="answer" value="4">4<br>全选 <input type="checkbox" name="check1" onclick="checkall(form1)"><br> <input type="button" name="b1" value="删除" onClick="del()"> </form> 谢谢楼上的 但我要的是JSF里面的代码 就是要放到datetable里面去的 这个好象行不通 //全选or全不选 function selectAll(){var oTable=document.all['form:dataTable']; var oChkAll=document.all['form:selectall']if(oTable != null && oChkAll != null){for(j=1;j<oTable.rows.length;j++){oTable.rows(j).cells(0).children.item(0).checked=oChkAll.checked;}}}JSF页面代码:...<h:selectBooleanCheckbox id="selectall" onclick="selectAll()" /> <h:outputLabel for="selectall"> <h:outputText value="全选" /> </h:outputLabel> <t:dataTable align="left" border="1" rows="10" first="0" id="dataTable" rendered="true" value="#{empController.empModel}" var="emp"> <t:column> <f:facet name="header"> <h:outputText value="Select"></h:outputText> </f:facet> <h:selectBooleanCheckbox id="select" value="#{emp.checked}" /> </t:column>... 如果采用上面的方式的话,对应到的数据集中的对象就必须有一个属性"checked"用来保存记录的选中或不选中状态,这样的话每个对象就要多出一个它自身属性之外的属性,而这样的结果显然不是很好,有冗余;这样在生成每一个对象时就要多加一个属性,如果系统中已经建立了领域对象(只含有自身属性),那么在该对象用于页面显示的时候就需要一个属性,这时就不得不构造一个DTO来加入"checked"这个状态属性,这样的话系统中就多了一对象,而且这个对象仅仅多出一个属性,显然这样的结果是我们不能接受的.但是我至今也没找到合适的方法,不用这个"checked"属性来保存其选中状态,希望能有高手指点,谢谢!PS:说得不对的地方请大家提出!谢谢! 商城商品添加问题 网络断开,然后又连接上,这时候spring如何恢复连接 使用jsp控制器servlet直接调用xfire框架构建的 WebService怎么不行? 通过url访问,如果页面不存在跳到错误提示页怎么做》? 乱码问题,求助 如何取得外网ip jsp 调用数据库的问题 jdk安装过程中出现semi-colon不能继续的问题 关于iframe在网页之间无法传递参数的问题 如果在调查表中实现多项选择 怎样用javascript提交strtus表单 在线等待 js cookie 和 JSP cookie 可以互换使用吗?
function del()//用于判断记录有没有选中的函数
{
var flag=true;//用于存储有没有选择的变量,false为有选,true没选
var temp="";//复选框的值,并事先给它预赋值为空,否则它的值为未定义
var tmp;//复选框数
if((document.form1.answer.length)=="undefined") //判断复选框的数目,当只有1个复选框时不能使用复选框length属性,所以它的值为undefined
{
tmp=1
}
else
{
tmp=document.form1.answer.length
}
//接下来就分两种情况来处理,一种是只有1个复选框,另一种是多个复选框
if(tmp==1)
{
if(document.form1.answer.checked) //当复选框被选中时
{
flag=false;
temp=document.form1.answer.value //因为只有1个复选框,所以将值直接付给temp
}
}
else //另外一种情况有多个复选框时
{
for(i=0;i<document.form1.answer.length;i++) //for循环
{
if(document.form1.answer[i].checked) //当answer[i]被选中时为true
{
if(temp=="")
{
flag=false;
temp=document.form1.answer[i].value
}
else
{
flag=false;
temp=temp+","+document.form1.answer[i].value
}
}
}
}
if(flag)
{
alert("对不起,你还没选择!");
}
else
{
//name=document.form1.name.value
//alert(name)
if(confirm("确实要删除?"))
{
//window.location="delnews.asp?id="+temp;//发送id号到删除处理页
alert("删除ID为"+temp);
}
}
//return !flag;
} //全选函数
function checkall(all)//用于判断全选记录的函数
{
var a=document.getElementsByName("answer");//返回answer的集合
for(var i=0; i<a.length;i++)a[i].checked=all.check1.checked;
} </script>
<form name="form1" method="post" action="">
<input type="checkbox" name="answer" value="1">1<br>
<input type="checkbox" name="answer" value="2">2<br>
<input type="checkbox" name="answer" value="3">3<br>
<input type="checkbox" name="answer" value="4">4<br>全选
<input type="checkbox" name="check1" onclick="checkall(form1)"><br>
<input type="button" name="b1" value="删除" onClick="del()">
</form>
这个好象行不通
function selectAll()
{
var oTable=document.all['form:dataTable'];
var oChkAll=document.all['form:selectall']if(oTable != null && oChkAll != null)
{
for(j=1;j<oTable.rows.length;j++)
{
oTable.rows(j).cells(0).children.item(0).checked=oChkAll.checked;
}
}
}JSF页面代码:
...
<h:selectBooleanCheckbox id="selectall" onclick="selectAll()" />
<h:outputLabel for="selectall">
<h:outputText value="全选" />
</h:outputLabel> <t:dataTable align="left" border="1" rows="10" first="0"
id="dataTable" rendered="true"
value="#{empController.empModel}" var="emp">
<t:column>
<f:facet name="header">
<h:outputText value="Select"></h:outputText>
</f:facet>
<h:selectBooleanCheckbox id="select" value="#{emp.checked}" />
</t:column>
...
PS:说得不对的地方请大家提出!谢谢!