一个页面有多组复选框,怎样控制每组复选框最少选一个最多选5个.谢谢
如:
你喜欢的水果:
□桔子 □苹果 □梨 □香焦 □桃 □芒果 □葡萄
你喜欢的运动:
□跑步 □游泳 □骑车 □慢走 □爬山 □跳高 □跳远
控制每组复选框最少选一个最多选5个
等.
<table width="200" border="0" cellspacing="0" cellpadding="0">
<form name="f"><tr>
<td><input type="checkbox" name="cb" value="1">1<br>
<input type="checkbox" name="cb" value="">2<br>
<input type="checkbox" name="cb" value="">3<br>
<input type="checkbox" name="cb" value="">4<br>
<input type="checkbox" name="cb" value="">5<br>
<input type="checkbox" name="cb" value="">6<br>
<input type="checkbox" name="cb" value="">7<br>
<input type="button" name="btn" value="check" onClick="check()"></td>
</tr></form>
</table>
<script language="javascript">
function check() {
var a=0;
for (var i=0;i<document.f.cb.length;i++){
if (document.f.cb[i].checked)
a+=1}
if (a<1 || a>5)alert("error");
}
</script>
超级简陋不好意思
等待更好的写法
你这样写有什么问题
<SCRIPT LANGUAGE="JavaScript">
<!--
var sCtrlPrefix = "sample";
var iMaxCheckbox = 7;
//设置最大允许选择的数量;
var iMaxSelected = 5;
function doCheck(ctrl) {
var iNumChecked = 0;
var thisCtrl;
var i;
i = 1;
while ((i <= iMaxCheckbox) && (iNumChecked <= iMaxSelected)) {
thisCtrl = eval("ctrl.form." + sCtrlPrefix + i);
if ((thisCtrl != ctrl) && (thisCtrl.checked)) {
iNumChecked++;
}
i++;
}
// 检查是否达到了最大选择数量;
if (iNumChecked == iMaxSelected) {
// 如果是则uncheck刚选择的元素;
ctrl.checked = false;
}
}
// -->
</SCRIPT>
<form name="form" method="post">
<table align="center" border="1" cellpadding="5" cellspacing="0">
<tr>
<td>
<input type="CHECKBOX" name="sample1" onClick="doCheck(this)">
桔子</td>
<td>
<input type="CHECKBOX" name="sample2" onClick="doCheck(this)">
苹果</td>
<td>
<input type="CHECKBOX" name="sample3" onClick="doCheck(this)">
香蕉</td>
<td>
<input type="CHECKBOX" name="sample4" onClick="doCheck(this)">
梨子</td>
<td>
<input type="CHECKBOX" name="sample5" onClick="doCheck(this)">
桃子</td>
<td>
<input type="CHECKBOX" name="sample6" onClick="doCheck(this)">
芒果</td>
<td>
葡萄<input type="CHECKBOX" name="sample7" onClick="doCheck(this)">
</td>
</tr>
</table>
</form>
给你一个站点,自己去看看吧,比直接告诉你还有效:
bestmoban.com/texiao/