JS教程:javascript脚本对网页投票系统进行选项限制

经常在网上游的你,应该对网上投票系统不默生吧.一般的投票系统我这里就不多说.现在说下可以进行多项投票的系统,我们要限制投票的人最多只能选择其中的几项.

这样大家是不是已经看到问题了,如何进行限制选择项数呢,这里有一段Javascript脚本,可以进行限制.

<SCRIPT LANGUAGE="JavaScript">
<!--
//checkbox元素的名字前缀

var sCtrlPrefix = "sample";
//checkbox元素数量,本例有10个;
var iMaxCheckbox = 10;
//设置最大允许选择的数量;
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>
<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="sample8" onClick="doCheck(this)">H
<input type="CHECKBOX" name="sample9" onClick="doCheck(this)">I
<input type="CHECKBOX" name="sample10" onClick="doCheck(this)">J
</form>

改代码最需要注意的是


//checkbox元素的名字前缀

var sCtrlPrefix = "sample";





//checkbox元素数量,本例有10个;
var iMaxCheckbox = 10;


checkbox元素的名字前缀和元素数量与页面中定义的稍有差错脚本即失效。

故有如下脚本函数以通用:
<SCRIPT  LANGUAGE="JavaScript">
var  c=0,limit=3;
function  doCheck(obj)  {
obj.checked?c++:c--;
if(c>limit)obj.checked=false,c--;
}
</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="sample8" onClick="doCheck(this)">H
<input type="CHECKBOX" name="sample9" onClick="doCheck(this)">I
<input type="CHECKBOX" name="sample10" onClick="doCheck(this)">J
</form>

 

<SCRIPT LANGUAGE="JavaScript">
var c=0,limit=3;
ALERTXT="最多可选"+limit+"个"
function doCheck(obj) {
obj.checked?c++:c--;
if(c>limit)obj.checked=false,c--,alert(ALERTXT);
}
</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="sample8" onClick="doCheck(this)">H
<input type="CHECKBOX" name="sample9" onClick="doCheck(this)">I
<input type="CHECKBOX" name="sample10" onClick="doCheck(this)">J
</form>

本文脚本来自互联网络,原作者不祥.供大家学习之用.