限制复选框的最大可选数(转摘)

 
在一些网页应用中,就比如在投票系统中,当我们进行的是多项投票时,我们要求用户最多只能选择几项进行投票,这也是就是说选择复选框的个数最多几个.

那么如何设置这最多的几个,我们就需要做些简单的脚本处理。以下代码均转摘自互联网,作者不详。

比如如下的代码则解决了相关问题:

<SCRIPT LANGUAGE="JavaScript"> <!-- //checkbox元素的名字前缀,本例为sample1,sample2,sample3... 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>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

改代码最需要注意的是


//checkbox元素的名字前缀,本例为sample1,sample2,sample3...
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>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

<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>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]

转载于:https://www.cnblogs.com/wifi/articles/2398230.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值