js问题,如何限制checkbox的数量达到多少时,不允许提交表单?
我想实现当sample选择超过3个的时候就提示不能选了(这个已经实现了),然后又当yu达到6的时候,提交表单时返回某页,也就是不允许提交(这个没有实现).请问我的这段代码...
我想实现当sample选择超过3个的时候就提示不能选了(这个已经实现了), 然后又当yu达到6的时候,提交表单时返回某页,也就是不允许提交(这个没有实现).
请问我的这段代码应该怎么改才对?
下面这个是完整代码:
<SCRIPT LANGUAGE="JavaScript">
<!--
var sCtrlPrefix = "sample";
//checkbox元素数量;
var iMaxCheckbox = 7;
//设置最大允许选择的数量;
var iMaxSelected = 3;
function doCheck(ctrl) {
var iNumChecked = 0;
var thisCtrl;
var i;
//初始化
i = 1;
//循环直到选中了最多的checkbox;
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;
ALERTXT="最多可选"+iMaxSelected+"个"
alert(ALERTXT);
}
}
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
var sCtrlPrefix1 = "yu";
//checkbox元素数量;
var iMaxCheckbox1 = 7;
//设置最大允许选择的数量;
var iMaxSelected1 = 5;
function doCheck1(ctrl) {
var iNumChecked1 = 0;
var thisCtrl1;
var i;
//初始化
i = 1;
//循环直到选中了最多的checkbox;
while ((i <= iMaxCheckbox1) && (iNumChecked1 <= iMaxSelected1)) {
thisCtrl1 = eval("ctrl.form." + sCtrlPrefix1 + i);
if ((thisCtrl1 != ctrl) && (thisCtrl1.checked)) {
iNumChecked1++;
}
i++;
}
// 检查是否达到了最大选择数量;
if (iNumChecked1 == iMaxSelected1) {
location.href="test.asp";
return false;
}
}
// -->
</SCRIPT>
<form name="form" method="post">
<input type="CHECKBOX" name="sample1" onClick="doCheck(this)">A
<input type="CHECKBOX" name="sample2" onClick="doCheck(this)">B
<input type="CHECKBOX" name="sample3" onClick="doCheck(this)">C
<input type="CHECKBOX" name="sample4" onClick="doCheck(this)">D
<input type="CHECKBOX" name="sample5" onClick="doCheck(this)">E
<input type="CHECKBOX" name="sample6" onClick="doCheck(this)">F
<input type="CHECKBOX" name="sample7" onClick="doCheck(this)">G
<input type="CHECKBOX" name="yu1" onClick="doCheck1(this)">1
<input type="CHECKBOX" name="yu2" onClick="doCheck1(this)">2
<input type="CHECKBOX" name="yu3" onClick="doCheck1(this)">3
<input type="CHECKBOX" name="yu4" onClick="doCheck1(this)">4
<input type="CHECKBOX" name="yu5" onClick="doCheck1(this)">5
<input type="CHECKBOX" name="yu6" onClick="doCheck1(this)">6
<input type="CHECKBOX" name="yu7" onClick="doCheck1(this)">7
<input name="submit" type="submit" value="确定" onSubmit="return doCheck1(ctrl)">
</form> 展开
请问我的这段代码应该怎么改才对?
下面这个是完整代码:
<SCRIPT LANGUAGE="JavaScript">
<!--
var sCtrlPrefix = "sample";
//checkbox元素数量;
var iMaxCheckbox = 7;
//设置最大允许选择的数量;
var iMaxSelected = 3;
function doCheck(ctrl) {
var iNumChecked = 0;
var thisCtrl;
var i;
//初始化
i = 1;
//循环直到选中了最多的checkbox;
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;
ALERTXT="最多可选"+iMaxSelected+"个"
alert(ALERTXT);
}
}
// -->
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
var sCtrlPrefix1 = "yu";
//checkbox元素数量;
var iMaxCheckbox1 = 7;
//设置最大允许选择的数量;
var iMaxSelected1 = 5;
function doCheck1(ctrl) {
var iNumChecked1 = 0;
var thisCtrl1;
var i;
//初始化
i = 1;
//循环直到选中了最多的checkbox;
while ((i <= iMaxCheckbox1) && (iNumChecked1 <= iMaxSelected1)) {
thisCtrl1 = eval("ctrl.form." + sCtrlPrefix1 + i);
if ((thisCtrl1 != ctrl) && (thisCtrl1.checked)) {
iNumChecked1++;
}
i++;
}
// 检查是否达到了最大选择数量;
if (iNumChecked1 == iMaxSelected1) {
location.href="test.asp";
return false;
}
}
// -->
</SCRIPT>
<form name="form" method="post">
<input type="CHECKBOX" name="sample1" onClick="doCheck(this)">A
<input type="CHECKBOX" name="sample2" onClick="doCheck(this)">B
<input type="CHECKBOX" name="sample3" onClick="doCheck(this)">C
<input type="CHECKBOX" name="sample4" onClick="doCheck(this)">D
<input type="CHECKBOX" name="sample5" onClick="doCheck(this)">E
<input type="CHECKBOX" name="sample6" onClick="doCheck(this)">F
<input type="CHECKBOX" name="sample7" onClick="doCheck(this)">G
<input type="CHECKBOX" name="yu1" onClick="doCheck1(this)">1
<input type="CHECKBOX" name="yu2" onClick="doCheck1(this)">2
<input type="CHECKBOX" name="yu3" onClick="doCheck1(this)">3
<input type="CHECKBOX" name="yu4" onClick="doCheck1(this)">4
<input type="CHECKBOX" name="yu5" onClick="doCheck1(this)">5
<input type="CHECKBOX" name="yu6" onClick="doCheck1(this)">6
<input type="CHECKBOX" name="yu7" onClick="doCheck1(this)">7
<input name="submit" type="submit" value="确定" onSubmit="return doCheck1(ctrl)">
</form> 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询