复选框问题 哈哈,是你啊,信誉好低,有RPWT? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看你在MSN上问我.我给你的答案如下,相应的你自己改改就可以了.<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><script language="JavaScript">function checkboxNums(tagsname,typename,exception){ var o=document.all.tags(tagsname); Nums=0 for(var i=0;i<o.length;i++){ if(o[i].type==typename){ if (o[i].name!=exception) { if (o[i].checked==true) Nums++; } } } return Nums;}function del(page){ Nums=0; Nums=checkboxNums("INPUT","checkbox","checkboxall"); if(Nums>0){ if (confirm("确定要删除这("+Nums+")条记录吗?删除后不可以再恢复哦!\n\n您真的要和它们说Bye Bye?")){ document.form1.action=page; document.form1.submit(); } }else{ alert("您没有作出任何选择,不能进行删除操作。"); }}</script></head><body>〖<a href="javascript:del('del.php');"><font color=red>删除</font></a>〗<form name=form1 method=post><input type=checkbox id=check_1 name="selected_id[]" value="6">11<input type=checkbox id=check_2 name="selected_id[]" value="2">22</form> 下面的代码调试通过。请看里面的注释,我写的详细了<!--请看里面的注释--><script language="javascript"><!-- function checkthis(sname) { var num; num=0; for (i=1;i<=4;i++) {//有多少行,、i就小于等于几 tmp=sname+i; if (document.getElementById(tmp).checked==true) num+=1; } if (num>2) alert("test"); }//--></script><table width="100%" border="0" cellspacing="0" cellpadding="0"> <td width="14%"><FORM name="form" method=post action=cc.php> <tr> <td>嶲</td> <td width="3%">11-19 <input type=hidden name=date1 value=20041119></td> <td width="7%">11-20 <input type=hidden name=date1 value=20041120></td> <td width="7%">11-21 <input type=hidden name=date1 value=20041121></td> <td width="7%">11-22 <input type=hidden name=date1 value=20041122></td> <td width="7%">11-23 <input type=hidden name=date1 value=20041123></td> <td width="8%">11-24 <input type=hidden name=date1 value=20041124></td> <td width="47%">11-25 <input type=hidden name=date1 value=20041125></td> </tr> <tr> <td>9:20-10:20<br></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds11 value=20041119 9 0 onClick="checkthis('selectedSlotIds1')"></td> <!--这里的复选框名字selectedSlotIds11 是有规则的,前一个数字代表第几列,后一个数字代表第几行,ONCLICK中的参数是将名字的最后一个去掉后的字串--> <!--这些有规则的名称和后面ONCLICK中的参数都是可以动态生成的,不用手写。--> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds21 value=20041120 9 1 onClick="checkthis('selectedSlotIds2')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds31 value=20041121 9 2 onClick="checkthis('selectedSlotIds3')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds41 value=20041122 9 3 onClick="checkthis('selectedSlotIds4')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds51 value=20041123 9 4 onClick="checkthis('selectedSlotIds5')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds61 value=20041124 9 5 onClick="checkthis('selectedSlotIds6')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds71 value=20041125 9 6 onClick="checkthis('selectedSlotIds7')"></td> </tr> <tr> <td>10:20-11:20<br></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds12 value=20041119 10 0 onClick="checkthis('selectedSlotIds1')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds22 value=20041120 10 1 onClick="checkthis('selectedSlotIds2')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds32 value=20041121 10 2 onClick="checkthis('selectedSlotIds3')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds42 value=20041122 10 3 onClick="checkthis('selectedSlotIds4')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds52 value=20041123 10 4 onClick="checkthis('selectedSlotIds5')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds62 value=20041124 10 5 onClick="checkthis('selectedSlotIds6')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds72 value=20041125 10 6 onClick="checkthis('selectedSlotIds7')"></td> </tr> <tr> <td>11:20-12:20<br></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds13 value=20041119 11 0 onClick="checkthis('selectedSlotIds1')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds23 value=20041120 11 1 onClick="checkthis('selectedSlotIds2')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds33 value=20041121 11 2 onClick="checkthis('selectedSlotIds3')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds43 value=20041122 11 3 onClick="checkthis('selectedSlotIds4')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds53 value=20041123 11 4 onClick="checkthis('selectedSlotIds5')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds63 value=20041124 11 5 onClick="checkthis('selectedSlotIds6')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds73 value=20041125 11 6 onClick="checkthis('selectedSlotIds7')"></td> </tr> <tr> <td>12:20-13:20<br></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds14 value=20041119 12 0 onClick="checkthis('selectedSlotIds1')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds24 value=20041120 12 1 onClick="checkthis('selectedSlotIds2')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds34 value=20041121 12 2 onClick="checkthis('selectedSlotIds3')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds44 value=20041122 12 3 onClick="checkthis('selectedSlotIds4')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds54 value=20041123 12 4 onClick="checkthis('selectedSlotIds5')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds64 value=20041124 12 5 onClick="checkthis('selectedSlotIds6')"></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds74 value=20041125 12 6 onClick="checkthis('selectedSlotIds7')"></td> </tr> <tr> <td colspan="8"> </td> </tr></table> if (num>2) alert("test");=> if (num>2){ alert("test");return false;} 用JS做个循环,form.name[i].checked==true....... skystar008(疯花血月) 能详细些吗 这是一个纯js的问题,与php一点关系都没有。况且你也没有按照php的约定对复选框用数组形式命名。不过还是可以给你解答的不用改动原html文档,只需加入如下代码即可<script>document.onclick = foo; //指派onclick的处理函数num = new Array(); //记录点击次数的数组function foo() { el = event.srcElement; //得到点击的对象 if(el.tagName != "INPUT" && el.type != "checkbox") return; //不是复选框就返回 i = el.parentElement.cellIndex; //取得复选框所在列号 if(! num[i]) num[i] = 0; //如果计数器没有初始化则初始化 //根据复选框的状态计数 if(el.checked) num[i]++; else num[i]--; if(num[i] > 2) { num[i] = 2 el.checked = false; //撤消选择 alert("不能同时选中3个"); }}</script> 煩死了,謝謝各位呀xuzuning(唠叨) ( ) 感謝你呀,但這樣子又出來了一個問題如果我多了一个<table><tr> <td>嶲</td> <td width="7%">11-19 <input type=hidden name=date1 value=20041119></td> <td width="7%">11-20 <input type=hidden name=date1 value=20041120></td> <td width="7%">11-21 <input type=hidden name=date1 value=20041121></td> <td width="7%">11-22 <input type=hidden name=date1 value=20041122></td> <td width="7%">11-23 <input type=hidden name=date1 value=20041123></td> <td width="8%">11-24 <input type=hidden name=date1 value=20041124></td> <td width="47%">11-25 <input type=hidden name=date1 value=20041125></td> </tr> <tr> <td>9:20-10:20<br></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041119 9 0></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041120 9 1></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041121 9 2></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041122 9 3></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041123 9 4></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041124 9 5></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041125 9 6></td> </tr> <tr> <td>10:20-11:20<br></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041119 10 0></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041120 10 1></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041121 10 2></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041122 10 3></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041123 10 4></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041124 10 5></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041125 10 6></td> </tr> <tr> <td>11:20-12:20<br></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041119 11 0></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041120 11 1></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041121 11 2></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041122 11 3></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041123 11 4></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041124 11 5></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041125 11 6></td> </tr> <tr> <td>12:20-13:20<br></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041119 12 0></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041120 12 1></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041121 12 2></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041122 12 3></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041123 12 4></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041124 12 5></td> <td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041125 12 6></td> </tr> <tr> <td colspan="8"> </td> </tr></table> 如果这样多加了一个上面的话,唠叨老大你的判断就把上面的一块也判断的,能不能想个办法?不要让上面的也判断,但上面的也有同样的要求??附上我的源码,各位大哥帮助了 <? if ($selecttypeid<>"") { $query="SELECT * FROM facility where FacTypeId='$selecttypeid'"; //echo "$query"; $res=mysql_execSQL($query); echo "<Form name=\"form\" method=post action=cc.php>"; while ($row=mysql_fetch_array($res)){ ?> <b>名稱:<? echo $row[NameCn];?><input type=hidden name=FacId value="<? echo $row[FacId]?>"> 隱藏的變量ID:<? echo $row[FacId]?></b> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>時間</td> <? $date6=date("Ymd"); $row_s=7;//日期 $date4=date("m-d"); $tomorrow = mktime (0,0,0,date("m") ,date("d")-1,date("Y")); $date5=date("Ymd",$tomorrow); for($j=0;$j<$row_s;$j++) { echo "<td>"; echo $date4++; $date5++; echo "<input type=hidden name=date1 value=\"$date5\">"; echo "</td>"; } ?> </tr> <?$time1="09:20";$time2="21:20";$fix1 = explode(":",$time1);$fix2 = explode(":",$time2);$time1 = intval($time1);$time2 = intval($time2);for($i=$time1;$i<$time2;$i++){echo "<tr>";echo "<td>";echo $i.':'.$fix1[1].'-'.($i+1).':'.$fix2[1].'<br>';echo "</td>"; for($j=0;$j<$row_s;$j++) { //echo "<td>".$result_all['OCONT_NUM'][$i][$j]." </td>"; echo "<td bgcolor=\"#AACCFF\">"; //$last = mktime (0,0,0,date("m") ,date("d")-1,date("Y")); $last = mktime(0,0,0,date("m"),date("d")+$j,date("Y")); $date6=date("Ymd",$last); echo "<input type=checkbox name=selectedSlotIds value= \"$row[FacId]$date6 $i $j\">"; echo "</td>"; } echo "</tr>";} ?> </table> <? } echo "<br>"; echo "<center><input type=\"button\" name=\"Finished\" value=\"確認預訂\" onclick='CheckReco(this.form,event.srcElement)'>"; echo "<input type=reset name=reset value=從新選擇></center>"; } ?> </TD> </TR> </TBODY> </TABLE> </Form> 解释一下,我现在的这段程序生成了二个第一楼的东西,放在一个Form里面!!两个东西是要插入数据库的(这是后话),唠叨大哥的js程序把下面的也判断了,就是我点击11-19下面的复选框的时候,点击二个复选框以上的话,那个js程序把下面的第二个东西的复选框也算进去了这是表结构和内容:CREATE TABLE `facility` ( `FacId` varchar(10) NOT NULL default '''''', `NameCn` varchar(15) default NULL, `NameEn` varchar(20) default NULL, `Capacity` smallint(6) default NULL, `DescriptionCn` varchar(100) default NULL, `DescriptionEn` varchar(100) default NULL, `IsExclusive` bigint(20) default NULL, `IsAvailable` bigint(20) default NULL, `FacTypeId` smallint(6) default NULL, `LocationId` smallint(6) default NULL, `NeedRegionNum` smallint(6) default NULL, `ChargeTypeId` smallint(6) default NULL, `ImagePath` varchar(100) default NULL, `BookRuleType` smallint(6) default NULL, `BookPeriodNormal` tinyint(4) NOT NULL default '0', `BookPeriodAdhoc` tinyint(4) NOT NULL default '0', PRIMARY KEY (`FacId`)) TYPE=MyISAM;-- -- 列出以下資料庫的數據: `facility`-- INSERT INTO `facility` VALUES ('TC A', 'AAA', 'BBB', 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, 'product/', NULL, 0, 0);INSERT INTO `facility` VALUES ('TC B', 'CCC', 'DDD', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, 0, 0);INSERT INTO `facility` VALUES ('TC E', 'EEE', 'FFF', NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, 3, NULL, NULL, 0, 0); <table width="100%" border="0" cellspacing="0" cellpadding="0"> <td width="10%"><FORM name="form" method=post action=cc.php> <tr> <td>¦ÚŽQ</td>你这个是怎么嵌套的? eglic(圪圪) 不好意思呀帮帮忙呀 这有有何难?只要你知道算法原理就可以了。修改1、去掉document.onclick = foo;这一行2、在每段的table标记上加入oncilck指派,形如<table width="100%" border="0" cellspacing="0" cellpadding="0" onclick="foo(1)"><table width="100%" border="0" cellspacing="0" cellpadding="0" onclick="foo(2)">传递的参数将表示是在哪个表格里发生的点击事件3、将js该做<script>num = new Array(); //记录点击次数的数组function foo(s) { el = event.srcElement; //得到点击的对象 if(el.tagName != "INPUT" && el.type != "checkbox") return; //不是复选框就返回 i = el.parentElement.cellIndex; //取得复选框所在列号 if(! num[s]) num[s] = new Array(); //新加入的,将以二维数组记录点击次数 if(! num[s][i]) num[s][i] = 0; //如果计数器没有初始化则初始化 //根据复选框的状态计数 if(el.checked) num[s][i]++; else num[s][i]--; if(num[s][i] > 2) { num[s][i] = 2 el.checked = false; alert("不能同时选中3个"); }}</script>4、当然你也可以费点事逐级向上查找,来确定点击是发生在哪个table中的5、用htc可能还要简单些,但是我不会 但我的<table></table>是可以自动增加的,谢谢!!怎么办?? 用curl做虚拟登陆的应该怎么检查是否登录进去比较靠谱? 正则 Can't create/write to file 'C:\WINDOWS\TEMP\#sql_d98_0.MYD' (Errcode: 17) 求助!!整合discuz的问题 关于PHP+ACCESS显示数据的问题 程序写的时候,应该采用哪种方法,第1种还是第2种 如何让倒计时间停止 急,用php写一段得到当前路径的绝对路径的脚本(html)! 如何点击控制键调用声音文件按顺序播放 狂散,心情不是很好,希望版主不要删此贴,我是做php的, 再请教查询名问题 请问唠叨老大,关于使用您写的gb2utf8函数:)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="JavaScript">
function checkboxNums(tagsname,typename,exception){
var o=document.all.tags(tagsname);
Nums=0
for(var i=0;i<o.length;i++){
if(o[i].type==typename){
if (o[i].name!=exception) {
if (o[i].checked==true) Nums++;
}
}
}
return Nums;
}
function del(page){
Nums=0;
Nums=checkboxNums("INPUT","checkbox","checkboxall");
if(Nums>0){
if (confirm("确定要删除这("+Nums+")条记录吗?删除后不可以再恢复哦!\n\n您真的要和它们说Bye Bye?")){
document.form1.action=page;
document.form1.submit();
}
}else{
alert("您没有作出任何选择,不能进行删除操作。");
}
}
</script>
</head>
<body>〖<a href="javascript:del('del.php');"><font color=red>删除</font></a>〗<form name=form1 method=post>
<input type=checkbox id=check_1 name="selected_id[]" value="6">11
<input type=checkbox id=check_2 name="selected_id[]" value="2">22
</form>
<script language="javascript">
<!--
function checkthis(sname)
{
var num;
num=0;
for (i=1;i<=4;i++)
{//有多少行,、i就小于等于几
tmp=sname+i;
if (document.getElementById(tmp).checked==true)
num+=1;
}
if (num>2) alert("test");
}
//-->
</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<td width="14%"><FORM name="form" method=post action=cc.php>
<tr>
<td>嶲</td>
<td width="3%">11-19 <input type=hidden name=date1 value=20041119></td>
<td width="7%">11-20 <input type=hidden name=date1 value=20041120></td>
<td width="7%">11-21 <input type=hidden name=date1 value=20041121></td>
<td width="7%">11-22 <input type=hidden name=date1 value=20041122></td>
<td width="7%">11-23 <input type=hidden name=date1 value=20041123></td>
<td width="8%">11-24 <input type=hidden name=date1 value=20041124></td>
<td width="47%">11-25 <input type=hidden name=date1 value=20041125></td>
</tr>
<tr>
<td>9:20-10:20<br></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds11 value=20041119 9 0 onClick="checkthis('selectedSlotIds1')"></td>
<!--这里的复选框名字selectedSlotIds11 是有规则的,前一个数字代表第几列,后一个数字代表第几行,ONCLICK中的参数是将名字的最后一个去掉后的字串-->
<!--这些有规则的名称和后面ONCLICK中的参数都是可以动态生成的,不用手写。-->
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds21 value=20041120 9 1 onClick="checkthis('selectedSlotIds2')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds31 value=20041121 9 2 onClick="checkthis('selectedSlotIds3')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds41 value=20041122 9 3 onClick="checkthis('selectedSlotIds4')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds51 value=20041123 9 4 onClick="checkthis('selectedSlotIds5')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds61 value=20041124 9 5 onClick="checkthis('selectedSlotIds6')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds71 value=20041125 9 6 onClick="checkthis('selectedSlotIds7')"></td>
</tr>
<tr>
<td>10:20-11:20<br></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds12 value=20041119 10 0 onClick="checkthis('selectedSlotIds1')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds22 value=20041120 10 1 onClick="checkthis('selectedSlotIds2')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds32 value=20041121 10 2 onClick="checkthis('selectedSlotIds3')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds42 value=20041122 10 3 onClick="checkthis('selectedSlotIds4')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds52 value=20041123 10 4 onClick="checkthis('selectedSlotIds5')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds62 value=20041124 10 5 onClick="checkthis('selectedSlotIds6')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds72 value=20041125 10 6 onClick="checkthis('selectedSlotIds7')"></td>
</tr>
<tr>
<td>11:20-12:20<br></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds13 value=20041119 11 0 onClick="checkthis('selectedSlotIds1')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds23 value=20041120 11 1 onClick="checkthis('selectedSlotIds2')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds33 value=20041121 11 2 onClick="checkthis('selectedSlotIds3')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds43 value=20041122 11 3 onClick="checkthis('selectedSlotIds4')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds53 value=20041123 11 4 onClick="checkthis('selectedSlotIds5')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds63 value=20041124 11 5 onClick="checkthis('selectedSlotIds6')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds73 value=20041125 11 6 onClick="checkthis('selectedSlotIds7')"></td>
</tr>
<tr>
<td>12:20-13:20<br></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds14 value=20041119 12 0 onClick="checkthis('selectedSlotIds1')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds24 value=20041120 12 1 onClick="checkthis('selectedSlotIds2')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds34 value=20041121 12 2 onClick="checkthis('selectedSlotIds3')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds44 value=20041122 12 3 onClick="checkthis('selectedSlotIds4')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds54 value=20041123 12 4 onClick="checkthis('selectedSlotIds5')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds64 value=20041124 12 5 onClick="checkthis('selectedSlotIds6')"></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds74 value=20041125 12 6 onClick="checkthis('selectedSlotIds7')"></td>
</tr>
<tr>
<td colspan="8"> </td>
</tr>
</table>
=>
if (num>2)
{
alert("test");
return false;
}
能详细些吗
不过还是可以给你解答的
不用改动原html文档,只需加入如下代码即可
<script>
document.onclick = foo; //指派onclick的处理函数
num = new Array(); //记录点击次数的数组function foo() {
el = event.srcElement; //得到点击的对象
if(el.tagName != "INPUT" && el.type != "checkbox") return; //不是复选框就返回
i = el.parentElement.cellIndex; //取得复选框所在列号
if(! num[i]) num[i] = 0; //如果计数器没有初始化则初始化
//根据复选框的状态计数
if(el.checked)
num[i]++;
else
num[i]--;
if(num[i] > 2) {
num[i] = 2
el.checked = false; //撤消选择
alert("不能同时选中3个");
}
}
</script>
如果我多了一个
<table><tr>
<td>嶲</td>
<td width="7%">11-19 <input type=hidden name=date1 value=20041119></td>
<td width="7%">11-20 <input type=hidden name=date1 value=20041120></td>
<td width="7%">11-21 <input type=hidden name=date1 value=20041121></td>
<td width="7%">11-22 <input type=hidden name=date1 value=20041122></td>
<td width="7%">11-23 <input type=hidden name=date1 value=20041123></td>
<td width="8%">11-24 <input type=hidden name=date1 value=20041124></td>
<td width="47%">11-25 <input type=hidden name=date1 value=20041125></td>
</tr>
<tr>
<td>9:20-10:20<br></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041119 9 0></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041120 9 1></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041121 9 2></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041122 9 3></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041123 9 4></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041124 9 5></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041125 9 6></td>
</tr>
<tr>
<td>10:20-11:20<br></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041119 10 0></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041120 10 1></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041121 10 2></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041122 10 3></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041123 10 4></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041124 10 5></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041125 10 6></td>
</tr>
<tr>
<td>11:20-12:20<br></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041119 11 0></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041120 11 1></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041121 11 2></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041122 11 3></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041123 11 4></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041124 11 5></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041125 11 6></td>
</tr>
<tr>
<td>12:20-13:20<br></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041119 12 0></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041120 12 1></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041121 12 2></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041122 12 3></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041123 12 4></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041124 12 5></td>
<td bgcolor="#AACCFF"><input type=checkbox name=selectedSlotIds value=20041125 12 6></td>
</tr>
<tr>
<td colspan="8"> </td>
</tr>
</table>
附上我的源码,各位大哥帮助了
<?
if ($selecttypeid<>"")
{
$query="SELECT * FROM facility where FacTypeId='$selecttypeid'";
//echo "$query";
$res=mysql_execSQL($query);
echo "<Form name=\"form\" method=post action=cc.php>";
while ($row=mysql_fetch_array($res)){
?>
<b>名稱:<? echo $row[NameCn];?><input type=hidden name=FacId value="<? echo $row[FacId]?>"> 隱藏的變量ID:<? echo $row[FacId]?></b>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>時間</td>
<?
$date6=date("Ymd");
$row_s=7;//日期
$date4=date("m-d");
$tomorrow = mktime (0,0,0,date("m") ,date("d")-1,date("Y"));
$date5=date("Ymd",$tomorrow);
for($j=0;$j<$row_s;$j++)
{
echo "<td>";
echo $date4++;
$date5++;
echo "<input type=hidden name=date1 value=\"$date5\">";
echo "</td>";
}
?>
</tr>
<?
$time1="09:20";
$time2="21:20";$fix1 = explode(":",$time1);
$fix2 = explode(":",$time2);$time1 = intval($time1);
$time2 = intval($time2);for($i=$time1;$i<$time2;$i++){echo "<tr>";
echo "<td>";
echo $i.':'.$fix1[1].'-'.($i+1).':'.$fix2[1].'<br>';
echo "</td>";
for($j=0;$j<$row_s;$j++)
{
//echo "<td>".$result_all['OCONT_NUM'][$i][$j]." </td>";
echo "<td bgcolor=\"#AACCFF\">";
//$last = mktime (0,0,0,date("m") ,date("d")-1,date("Y"));
$last = mktime(0,0,0,date("m"),date("d")+$j,date("Y"));
$date6=date("Ymd",$last);
echo "<input type=checkbox name=selectedSlotIds value= \"$row[FacId]$date6 $i $j\">";
echo "</td>";
}
echo "</tr>";
}
?>
</table>
<?
}
echo "<br>";
echo "<center><input type=\"button\" name=\"Finished\" value=\"確認預訂\" onclick='CheckReco(this.form,event.srcElement)'>";
echo "<input type=reset name=reset value=從新選擇></center>";
}
?>
</TD>
</TR>
</TBODY>
</TABLE>
</Form>
两个东西是要插入数据库的(这是后话),唠叨大哥的js程序把下面的也判断了,就是我点击11-19下面的复选框的时候,点击二个复选框以上的话,那个js程序把下面的第二个东西的复选框也算进去了
这是表结构和内容:
CREATE TABLE `facility` (
`FacId` varchar(10) NOT NULL default '''''',
`NameCn` varchar(15) default NULL,
`NameEn` varchar(20) default NULL,
`Capacity` smallint(6) default NULL,
`DescriptionCn` varchar(100) default NULL,
`DescriptionEn` varchar(100) default NULL,
`IsExclusive` bigint(20) default NULL,
`IsAvailable` bigint(20) default NULL,
`FacTypeId` smallint(6) default NULL,
`LocationId` smallint(6) default NULL,
`NeedRegionNum` smallint(6) default NULL,
`ChargeTypeId` smallint(6) default NULL,
`ImagePath` varchar(100) default NULL,
`BookRuleType` smallint(6) default NULL,
`BookPeriodNormal` tinyint(4) NOT NULL default '0',
`BookPeriodAdhoc` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`FacId`)
) TYPE=MyISAM;--
-- 列出以下資料庫的數據: `facility`
-- INSERT INTO `facility` VALUES ('TC A', 'AAA', 'BBB', 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, 'product/', NULL, 0, 0);
INSERT INTO `facility` VALUES ('TC B', 'CCC', 'DDD', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, 0, 0);
INSERT INTO `facility` VALUES ('TC E', 'EEE', 'FFF', NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, 3, NULL, NULL, 0, 0);
<td width="10%"><FORM name="form" method=post action=cc.php>
<tr>
<td>¦ÚŽQ</td>你这个是怎么嵌套的?
帮帮忙呀
修改
1、去掉document.onclick = foo;这一行
2、在每段的table标记上加入oncilck指派,形如
<table width="100%" border="0" cellspacing="0" cellpadding="0" onclick="foo(1)">
<table width="100%" border="0" cellspacing="0" cellpadding="0" onclick="foo(2)">
传递的参数将表示是在哪个表格里发生的点击事件
3、将js该做
<script>
num = new Array(); //记录点击次数的数组function foo(s) {
el = event.srcElement; //得到点击的对象
if(el.tagName != "INPUT" && el.type != "checkbox") return; //不是复选框就返回
i = el.parentElement.cellIndex; //取得复选框所在列号
if(! num[s]) num[s] = new Array(); //新加入的,将以二维数组记录点击次数
if(! num[s][i]) num[s][i] = 0; //如果计数器没有初始化则初始化
//根据复选框的状态计数
if(el.checked)
num[s][i]++;
else
num[s][i]--;
if(num[s][i] > 2) {
num[s][i] = 2
el.checked = false;
alert("不能同时选中3个");
}
}
</script>4、当然你也可以费点事逐级向上查找,来确定点击是发生在哪个table中的
5、用htc可能还要简单些,但是我不会